Commit 72f18976 authored by 黄奎's avatar 黄奎

车修改

parent 55b84043
......@@ -166,7 +166,7 @@
</view>
<view class="inputBoxRight">
<input class="text-right" type="number" v-model="item.UserNum"
@input="handleInput($event, item, 'UserNum')" @blur="handleBlur(item, 'UserNum')" />
@input="handleInput($event, item,1, 'UserNum')" @blur="handleBlur(item,1, 'UserNum')" />
</view>
</view>
<view class="inputBox row justify-between">
......@@ -175,7 +175,7 @@
</view>
<view class="inputBoxRight">
<input class="text-right" type="number" v-model="item.UnitPrice"
@input="handleInput($event, item, 'UnitPrice')" @blur="handleBlur(item, 'UnitPrice')" />
@input="handleInput($event, item,2, 'UnitPrice')" @blur="handleBlur(item,2, 'UnitPrice')" />
</view>
</view>
<view class="inputBox row justify-between noBorder">
......@@ -249,7 +249,6 @@
watch: {
data: {
handler(newVal, oldVal) {
console.log("newVal", newVal);
if (oldVal.dataIndex1 != newVal.dataIndex1) {
this.initData();
} else {
......@@ -263,22 +262,39 @@
deep: true,
immediate: false
},
datas: {
handler(newVal, oldVal) {
this.updateData();
},
deep: true,
immediate: false
},
},
mounted() {
this.initData();
},
methods: {
// 在模板中的使用示例
handleInput(e, item, field) {
handleInput(e, item, type, field) {
const value = e.detail.value;
const validValue = this.$utils.checkInteger(value, true);
var validValue = 0;
if (type == 1) {
validValue = this.$utils.checkInteger(value, true);
} else {
validValue = this.$utils.checkPrice(value, true);
}
// 更新数据
item[field] = validValue;
// 触发其他逻辑(如计算)
this.getTotal();
},
handleBlur(item, field) {
const formattedValue = this.$utils.checkPrice(item[field], true);
handleBlur(item, type, field) {
var formattedValue = 0;
if (type == 1) {
formattedValue = this.$utils.checkInteger(item[field], true);
} else {
formattedValue = this.$utils.checkPrice(item[field], true);
}
// 更新数据
item[field] = formattedValue;
this.$set(item, field, formattedValue);
......@@ -296,12 +312,10 @@
},
getTotal() {
let total = 0;
this.datas.ReimburseList.ReimburseDetailsList.forEach(x => {
total += x.UserNum * x.UnitPrice
})
this.datas.TotalMoney = total
this.updateData()
},
delInfor(index) {
this.datas.ReimburseList.ReimburseDetailsList.splice(index, 1)
......@@ -312,7 +326,7 @@
},
getSettlementType(item) {
this.datas.ReimburseList.SettlementType = item.id
this.updateData()
this.$forceUpdate()
},
updateData() {
......@@ -342,7 +356,7 @@
let findIndex = this.optionList.findIndex(x => x.id == value)
this.optionObj = this.optionList[findIndex]
this.datas.ReimburseList.ReimburseDetailsList[this.ReimIndex].UserTypeStr = this.optionObj.name
this.datas.ReimburseList.ReimburseDetailsList[this.ReimIndex].UserType = this.optionObj.id
this.datas.ReimburseList.ReimburseDetailsList[this.ReimIndex].UserType = this.optionObj.id;
},
previewImage(src) {
uni.previewImage({
......
<style lang="scss">
@import url("@/asset/css/flex.css");
.backBox{
width: 45rpx;
height:45rpx;
background: rgba(23,23,23,.5);
border-radius: 50%;
margin-top: 22rpx;
}
.backIcon{
display: inline-block;
margin-top: 6rpx;
}
.backBox img{
width: 19rpx;
height: 24rpx;
display: inline-block;
margin-top: 10rpx;
}
.itiner-title {
line-height: 45px !important;
font-size: 16px;
position: fixed;
left: 0;
top: 0;
width: 100%;
box-sizing: content-box;
z-index: 5;
background-color: #0072FF;
padding-left: 6rpx;
}
.itiner-titles{
color: #fff;
}
.bjLine{
background: #F5F5F5;
height: 30rpx;
}
.itiner-c-title{
font-weight: bold;
}
.itiner-xincheng img{
width: 31rpx;
height: 33rpx;
}
.itiner-xincheng-left{
color: #838383;
}
.itiner-xincheng-right view{
border: 1rpx solid #3581DA;
color: #3581DA;
border-radius: 8rpx;
padding: 0 8rpx;
}
.itiner-left-line{
width: 9rpx;
height: 25rpx;
border-radius: 100rpx;
background: #000;
}
.itiner-titleBox{
border-bottom: 1px solid #eee;
}
.itiner-title-c{
padding: 25rpx 20rpx;
}
.itiner-title-c.itiner-title-c-top{
padding: 0rpx 20rpx;
}
.itiner-title-c.active{
position: relative;
color: #327FDE;
}
.itiner-title-c.active::after{
content: '';
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 5rpx;
background: #3581DA;
}
.itiner-feiyong{
background: #FF9702;
color: #fff;
border-radius: 10rpx;
padding: 0rpx 20rpx;
}
.media{
position: relative;
}
.detailsType{
position: absolute;
left: 20rpx;
bottom: 10rpx;
background: #0130B0;
color: #fff;
border-radius: 25rpx;
padding: 3rpx 20rpx 7rpx 20rpx;
z-index: 2;
}
.richText{
// white-space: pre-wrap;
}
.name-ali{
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
margin-right: 200rpx;
}
@import url("@/asset/css/flex.css");
.backBox {
width: 45rpx;
height: 45rpx;
background: rgba(23, 23, 23, .5);
border-radius: 50%;
margin-top: 22rpx;
}
.backIcon {
display: inline-block;
margin-top: 6rpx;
}
.backBox img {
width: 19rpx;
height: 24rpx;
display: inline-block;
margin-top: 10rpx;
}
.itiner-title {
line-height: 45px !important;
font-size: 16px;
position: fixed;
left: 0;
top: 0;
width: 100%;
box-sizing: content-box;
z-index: 5;
background-color: #0072FF;
padding-left: 6rpx;
}
.itiner-titles {
color: #fff;
}
.bjLine {
background: #F5F5F5;
height: 30rpx;
}
.itiner-c-title {
font-weight: bold;
}
.itiner-xincheng img {
width: 31rpx;
height: 33rpx;
}
.itiner-xincheng-left {
color: #838383;
}
.itiner-xincheng-right view {
border: 1rpx solid #3581DA;
color: #3581DA;
border-radius: 8rpx;
padding: 0 8rpx;
}
.itiner-left-line {
width: 9rpx;
height: 25rpx;
border-radius: 100rpx;
background: #000;
}
.itiner-titleBox {
border-bottom: 1px solid #eee;
}
.itiner-title-c {
padding: 25rpx 20rpx;
}
.itiner-title-c.itiner-title-c-top {
padding: 0rpx 20rpx;
}
.itiner-title-c.active {
position: relative;
color: #327FDE;
}
.itiner-title-c.active::after {
content: '';
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 5rpx;
background: #3581DA;
}
.itiner-feiyong {
background: #FF9702;
color: #fff;
border-radius: 10rpx;
padding: 0rpx 20rpx;
}
.media {
position: relative;
}
.detailsType {
position: absolute;
left: 20rpx;
bottom: 10rpx;
background: #0130B0;
color: #fff;
border-radius: 25rpx;
padding: 3rpx 20rpx 7rpx 20rpx;
z-index: 2;
}
.richText {
// white-space: pre-wrap;
}
.name-ali {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
margin-right: 200rpx;
}
</style>
<template>
<scroll-view ref="scrollView" scroll-y="true"
style="width: 100%; height: 100vh;"
@scroll="scroll"
:scroll-top="scrollTop">
<view class="media" :style="{ opacity: 100 - boxOption + '%' }"
@click="openPicture">
<u-swiper
:list="dataList.tempImgCover"
:effect3d="false"
:height="545"
:interval="5000"
:border-radius="0"
name="Url"
mode="number"
indicatorPos="bottomRight">
</u-swiper>
<view @click="goback" :style="[titleStyle, { opacity: '100% !important' }]"
style="position: fixed; top: 0; left: 0; padding-left: 6rpx">
<view class="backBox text-center">
<u-icon class="backIcon" name="arrow-left" size="32" color="#FFF"></u-icon>
</view>
</view>
<!-- <view @click="goback" :style="[titleStyle, { opacity: '100% !important' }]"
<scroll-view ref="scrollView" scroll-y="true" style="width: 100%; height: 100vh;" @scroll="scroll"
:scroll-top="scrollTop">
<view class="media" :style="{ opacity: 100 - boxOption + '%' }" @click="openPicture">
<u-swiper :list="dataList.tempImgCover" :effect3d="false" :height="545" :interval="5000" :border-radius="0"
name="Url" mode="number" indicatorPos="bottomRight">
</u-swiper>
<view @click="goback" :style="[titleStyle, { opacity: '100% !important' }]"
style="position: fixed; top: 0; left: 0; padding-left: 6rpx">
<view class="backBox text-center">
<u-icon class="backIcon" name="arrow-left" size="32" color="#FFF"></u-icon>
</view>
</view>
<!-- <view @click="goback" :style="[titleStyle, { opacity: '100% !important' }]"
style="position: fixed; top: 0; right: 200rpx; padding-right: 6rpx">
<view class="backBox text-center">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638762515984923148.png" />
</view>
</view> -->
<view class="detailsType fz24">{{ dataList.teamType==0?'跟团游':dataList.teamType==1?'小包团':'一日游' }}</view>
</view>
<view class="itiner-title" :style="[titleStyle]">
<view class="itiner-titles row items-center text-center">
<view @click="goback">
<u-icon name="arrow-left" size="38"></u-icon>
</view>
<view style="flex: 1; margin-left: 30rpx; text-align: left" class="name-ali">
{{ dataList.title?dataList.title:'' }}
</view>
</view>
<view class="PX30 itiner-titleBox bgFFF row items-center justify-between">
<view class="itiner-title-c itiner-title-c-top fz30"
:class="[current==item.ID?'active':'']"
v-for="(item,index) in titlesList"
:key="index"
@click="goTop(item)">
{{ item.Name }}
</view>
</view>
</view>
<view class="itiner-content">
<view class="PX30 PB20">
<view class="PT25 PB30 fz32 itiner-c-title">
{{ dataList.title?dataList.title:'' }}
</view>
<view class="row justify-between items-center">
<view class="row items-center">
<view class="row items-center"><view class="fz28 color9C9C9C">同业价:</view> <text class="fontBold fz38 colorF99710">{{priceList&&priceList.length>0?priceList[0].b2BPrice:0}}</text><text class="fz24 ML10"> / 人</text></view>
<view class="row items-center ML30"><view class="fz28 color9C9C9C">统一售价:</view> <text class="fontBold fz38 colorF99710">{{priceList&&priceList.length>0?priceList[0].b2CPrice:0}} </text><text class="fz24 ML10"> / 人</text></view>
</view>
<!-- <view>
<u-icon class="backIcon" name="arrow-down" size="32" color="#9D9D9D"></u-icon>
<u-icon class="backIcon" name="arrow-up" size="32" color="#9D9D9D"></u-icon>
</view> -->
</view>
<!-- <view class="colorE1432E fz28 PT10">
op备注:
</view> -->
</view>
<view class="bjLine"></view>
<view class="PX30 PB20">
<view class="MT15 itiner-xincheng row items-center">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875112655075900.png"/>
<view class="itiner-xincheng-left ML30 MR30 fz26">行程天数</view>
<view class="itiner-xincheng-right fz28 row items-center"> {{ dataList.dayNum>=0?dataList.dayNum:'' }}<text class="ML10 MR10"></text>
{{ dataList.nightNum>=0?dataList.nightNum:'' }} <tetx class="ML10 MR10"></tetx>
{{ dataList.teamType==0?'跟团游':dataList.teamType==1?'小包团':'一日游' }}
<view class="ML30 MR10" @click="downloadTripPlanHandler">行程下载</view></view>
</view>
<view class="MT10 itiner-xincheng row items-center">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875112698474332.png"/>
<view class="itiner-xincheng-left ML30 MR30 fz26">出发城市</view>
<view class="itiner-xincheng-right fz28 row items-center">{{ dataList.startCityName?dataList.startCityName:'' }}</view>
</view>
</view>
<view class="bjLine"></view>
<view class="PX30">
<view class="PY20 row justify-between items-center" @click="showQinDan=!showQinDan">
<view class="row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">报名清单</text>
</view>
<view>
<u-icon class="backIcon" :name="!showQinDan?'arrow-down':'arrow-up'" size="32" color="#9D9D9D"></u-icon>
</view>
</view>
<view class="" v-if="showQinDan">
<view class="fz28">
<view>本团机位</view>
<template v-if="priceList&&priceList.length>0">
<view v-if="priceList[0].cSeat>0">头等舱: {{ priceList[0].cSeat }}</view>
<view v-if="priceList[0].fSeat>0">商务舱: {{ priceList[0].fSeat }}</view>
<view v-if="priceList[0].ySeat>0">经济舱: {{ priceList[0].ySeat }}</view>
</template>
</view>
<view class="fz28 PT15 PB20">报名人数:
<template v-if="priceList&&priceList.length>0">{{ priceList[0].offerFSeat+priceList[0].offerCSeat+priceList[0].offerYSeat }}</template>
<view class="detailsType fz24">{{ dataList.teamType==0?'跟团游':dataList.teamType==1?'小包团':'一日游' }}</view>
</view>
<view class="itiner-title" :style="[titleStyle]">
<view class="itiner-titles row items-center text-center">
<view @click="goback">
<u-icon name="arrow-left" size="38"></u-icon>
</view>
<view style="flex: 1; margin-left: 30rpx; text-align: left" class="name-ali">
{{ dataList.title?dataList.title:'' }}
</view>
</view>
<view class="PX30 itiner-titleBox bgFFF row items-center justify-between">
<view class="itiner-title-c itiner-title-c-top fz30" :class="[current==item.ID?'active':'']"
v-for="(item,index) in titlesList" :key="index" @click="goTop(item)">
{{ item.Name }}
</view>
</view>
</view>
<view class="itiner-content">
<view class="PX30 PB20">
<view class="PT25 PB30 fz32 itiner-c-title">
{{ dataList.title?dataList.title:'' }}
</view>
<view class="row justify-between items-center">
<view class="row items-center">
<!-- <view class="row items-center">
<view class="fz28 color9C9C9C">同业价:</view> <text
class="fontBold fz38 colorF99710">{{priceList&&priceList.length>0?priceList[0].b2BPrice:0}}</text><text
class="fz24 ML10"> / 人</text>
</view> -->
<view class="row items-center ML30">
<view class="fz28 color9C9C9C">统一售价:</view> <text
class="fontBold fz38 colorF99710">{{priceList&&priceList.length>0?priceList[0].b2CPrice:0}}
</text><text class="fz24 ML10"> / 人</text>
</view>
</view>
</view>
</view>
<view class="bjLine"></view>
<view class="PX30">
<view class="PY20 row justify-between items-center" @click="showMaiDian=!showMaiDian">
<view class="row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">本团卖点</text>
</view>
<view>
<u-icon class="backIcon" :name="!showMaiDian?'arrow-down':'arrow-up'" size="32" color="#9D9D9D"></u-icon>
</view>
</view>
<view v-if="showMaiDian" class="">
<view v-if="dataList.productRecommend" class="fz28 PB20">
<rich-text :nodes="dataList.productRecommend" class="richText"></rich-text>
</view>
<view v-else class="fz28 PB20" style="color: #7B7B7B;">暂无填写</view>
</view>
</view>
<view class="bjLine"></view>
<view class="PX30">
<view class="PY20 row justify-between items-center" @click="showHangBan=!showHangBan">
<view class="row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">航班信息</text>
</view>
<view>
<u-icon class="backIcon" :name="!showHangBan?'arrow-down':'arrow-up'" size="32" color="#9D9D9D"></u-icon>
</view>
</view>
<view v-if="showHangBan" class="">
<template v-if="priceList.length>0">
<view class="fz28 PB20">
<view class="priceFlightTitle row color000">
<view class="flex1">航班号</view>
<view class="flex1">起飞时间</view>
<view class="flex1">到达时间</view>
</view>
<view class="priceFlightText fz28 row color666 MT20" v-for="(item,index) in priceList[0].priceFlight">
<view class="flex1">
<view class="fz24"> {{ item.flightNumber }}</view>
{{ item.alName }}
</view>
<view class="flex1">
<view class="fz24"> {{ item.startDate }} {{ item.departureTime }}</view>
{{ item.departureAirPortName }}
<view v-if="item.stopoverAirPortName" class="fz24">
中:{{ item.stopoverAirPortName }}
</view>
</view>
<view class="flex1">
<view class="fz24"> {{ item.arriveDate }} {{ item.arrivalTime }}</view>
{{ item.arrivalAirPortName }}
</view>
</view>
</view>
</template>
<view v-else class="fz28 PB20" style="color: #7B7B7B;">暂无航班信息</view>
</view>
</view>
<view class="bjLine"></view>
<view class="PX30 itiner-titleBox row items-center justify-between">
<view class="itiner-title-c fz30"
:class="[current==item.ID?'active':'']"
v-for="(item,index) in titlesList"
:key="index"
@click="goTop(item)">
{{ item.Name }}
</view>
</view>
<view style="line-height: 50rpx;">
<view class="PX30" id="title1">
<view class="PY20 row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">行程特色</text>
</view>
<view v-if="dataList.feature&&dataList.feature.tripImageList&&dataList.feature.tripImageList.length>0">
<image v-for="x in dataList.feature.tripImageList" :src="x" mode="widthFix"
@click='previewTravelPicHandler(x,dataList.feature.tripImageList)'
style="width: 100%">
</image>
</view>
</view>
<view class="PX30" id="title2">
<view class="PY20 row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">行程介绍</text>
</view>
<view>
<view v-if="d.length>0&&dataList.feature&&dataList.feature.detailsImageList.length==0">
<view v-for="(x,i) in d" :key="i" class="column PB20">
<view class="column fz32 fontBold PB20">
<text>第{{(i+1)>9?(i+1):'0'+(i+1)}}天</text>
<text class="fz28 MT20" style="font-family: microsoft yahei ui light;">
{{x.title}}
</text>
</view>
<template v-for="(y,yi) in x.dayArray">
<view v-if="y.childItem&&y.childItem.imaArray&&y.childItem.imaArray.length>0&&y.type==2"
class="MB20"
style="border: 1px solid #ddd;">
<view v-for="(z,zi) in y.childItem.imaArray">
<image
@click="previewImages(y.childItem.imaArray,zi)"
:src="z.url" mode="aspectFill"
:key="zi" style="width: 100%;"
v-if="y.type==2"></image>
</view>
<view :key="yi" v-if="y.type==2" class="PA20">
<view class="fz30 fontBold PB20">{{`${y.childItem.couponsName}`}}</view>
<view class="fz28 color666">
<rich-text :nodes="y.childItem.description" class="richText"></rich-text>
</view>
</view>
</view>
<view :key="yi" v-if="y.type==6">
<view class="fz30 fontWeight500 PY20 colorE1432E">温馨提示</view>
<view class="fz28 PB20 color666">
<rich-text :nodes="y.childItem.description" class="richText"></rich-text>
</view>
</view>
</template>
<view class="row" v-if="x.canshi">
<view>
<image style="width: 45rpx;height: 45rpx;display: block;"
mode="aspectFill"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638876765053973357.png"/>
</view>
<view class="PL20">
<view class="row PB20" v-for="item in x.canshi">
<view class="fz34 fontBold MR20 flexS">
{{`${item.childItem.timeStr} ${item.childItem.dinnerTypeName}`}}
</view>
<view class="fz28 MR20 color666">{{item.childItem.dinnerName?item.childItem.dinnerName:'方便游玩敬请自理'}}</view>
</view>
</view>
</view>
<view class="row" v-if="x.zhusu">
<view>
<image style="width: 45rpx;height: 45rpx;display: block;"
mode="aspectFill"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638876765089861843.png"/>
</view>
<view class="PL20">
<view class="row" v-for="item in x.zhusu">
<view class="fz34 fontBold MR20 flexS">
住宿
</view>
<view class="fz28 MR20 color666">{{item.childItem.hotelName}}</view>
</view>
</view>
</view>
</view>
</view>
<view class="PB20 bgFFF" v-if="dataList.feature&&dataList.feature.detailsImageList.length>0">
<image class="MB20" :src="x" @click='previewTravelPicHandler(x,dataList.feature.detailsImageList)'
mode="widthFix" style="width: 100%;height: auto;"
v-for="x in dataList.feature.detailsImageList"></image>
</view>
</view>
</view>
<view class="PX30" id="title3">
<view class="PY20 row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">费用说明</text>
</view>
<view class="PB20">
<text class="itiner-feiyong">费用包含</text>
</view>
<view class="PB20">
<view class="fz26 color666">
<rich-text :nodes="dataList.feature.feeInclude?dataList.feature.feeInclude:'暂无'" class="richText"></rich-text>
</view>
</view>
<view class="PB20">
<text class="itiner-feiyong">费用不含</text>
</view>
<view class="PB20">
<view class="fz26 color666">
<rich-text :nodes="dataList.feature.feeNonInclude?dataList.feature.feeNonInclude:'暂无'" class="richText"></rich-text>
</view>
</view>
<view class="bjLine"></view>
<view class="PX30 PB20">
<view class="MT15 itiner-xincheng row items-center">
<img
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875112655075900.png" />
<view class="itiner-xincheng-left ML30 MR30 fz26">行程天数</view>
<view class="itiner-xincheng-right fz28 row items-center">
{{ dataList.dayNum>=0?dataList.dayNum:'' }}<text class="ML10 MR10"></text>
{{ dataList.nightNum>=0?dataList.nightNum:'' }}
<tetx class="ML10 MR10"></tetx>
{{ dataList.teamType==0?'跟团游':dataList.teamType==1?'小包团':'一日游' }}
<view class="ML30 MR10" @click="downloadTripPlanHandler">行程下载</view>
</view>
</view>
<view class="MT10 itiner-xincheng row items-center">
<img
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875112698474332.png" />
<view class="itiner-xincheng-left ML30 MR30 fz26">出发城市</view>
<view class="itiner-xincheng-right fz28 row items-center">
{{ dataList.startCityName?dataList.startCityName:'' }}</view>
</view>
</view>
<view class="bjLine"></view>
<view class="PX30">
<view class="PY20 row justify-between items-center" @click="showQinDan=!showQinDan">
<view class="row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">报名清单</text>
</view>
<view>
<u-icon class="backIcon" :name="!showQinDan?'arrow-down':'arrow-up'" size="32"
color="#9D9D9D"></u-icon>
</view>
</view>
<view class="" v-if="showQinDan">
<view class="fz28">
<view>本团机位</view>
<template v-if="priceList&&priceList.length>0">
<view v-if="priceList[0].cSeat>0">头等舱: {{ priceList[0].cSeat }}</view>
<view v-if="priceList[0].fSeat>0">商务舱: {{ priceList[0].fSeat }}</view>
<view v-if="priceList[0].ySeat>0">经济舱: {{ priceList[0].ySeat }}</view>
</template>
</view>
<view class="fz28 PT15 PB20">报名人数:
<template
v-if="priceList&&priceList.length>0">{{ priceList[0].offerFSeat+priceList[0].offerCSeat+priceList[0].offerYSeat }}</template>
</view>
</view>
</view>
<view class="bjLine"></view>
<view class="PX30">
<view class="PY20 row justify-between items-center" @click="showMaiDian=!showMaiDian">
<view class="row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">本团卖点</text>
</view>
<view>
<u-icon class="backIcon" :name="!showMaiDian?'arrow-down':'arrow-up'" size="32"
color="#9D9D9D"></u-icon>
</view>
</view>
<view v-if="showMaiDian" class="">
<view v-if="dataList.productRecommend" class="fz28 PB20">
<rich-text :nodes="dataList.productRecommend" class="richText"></rich-text>
</view>
<view v-else class="fz28 PB20" style="color: #7B7B7B;">暂无填写</view>
</view>
</view>
<view class="bjLine"></view>
<view class="PX30">
<view class="PY20 row justify-between items-center" @click="showHangBan=!showHangBan">
<view class="row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">航班信息</text>
</view>
<view>
<u-icon class="backIcon" :name="!showHangBan?'arrow-down':'arrow-up'" size="32"
color="#9D9D9D"></u-icon>
</view>
</view>
<view v-if="showHangBan" class="">
<template v-if="priceList.length>0">
<view class="fz28 PB20">
<view class="priceFlightTitle row color000">
<view class="flex1">航班号</view>
<view class="flex1">起飞时间</view>
<view class="flex1">到达时间</view>
</view>
<view class="priceFlightText fz28 row color666 MT20"
v-for="(item,index) in priceList[0].priceFlight">
<view class="flex1">
<view class="fz24"> {{ item.flightNumber }}</view>
{{ item.alName }}
</view>
<view class="flex1">
<view class="fz24"> {{ item.startDate }} {{ item.departureTime }}</view>
{{ item.departureAirPortName }}
<view v-if="item.stopoverAirPortName" class="fz24">
中:{{ item.stopoverAirPortName }}
</view>
</view>
<view class="flex1">
<view class="fz24"> {{ item.arriveDate }} {{ item.arrivalTime }}</view>
{{ item.arrivalAirPortName }}
</view>
</view>
</view>
</template>
<view v-else class="fz28 PB20" style="color: #7B7B7B;">暂无航班信息</view>
</view>
</view>
<view class="bjLine"></view>
<view class="PX30 itiner-titleBox row items-center justify-between">
<view class="itiner-title-c fz30" :class="[current==item.ID?'active':'']"
v-for="(item,index) in titlesList" :key="index" @click="goTop(item)">
{{ item.Name }}
</view>
</view>
<view style="line-height: 50rpx;">
<view class="PX30" id="title1">
<view class="PY20 row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">行程特色</text>
</view>
<view
v-if="dataList.feature&&dataList.feature.tripImageList&&dataList.feature.tripImageList.length>0">
<image v-for="x in dataList.feature.tripImageList" :src="x" mode="widthFix"
@click='previewTravelPicHandler(x,dataList.feature.tripImageList)' style="width: 100%">
</image>
</view>
</view>
<view class="PX30" id="title2">
<view class="PY20 row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">行程介绍</text>
</view>
<view>
<view v-if="d.length>0&&dataList.feature&&dataList.feature.detailsImageList.length==0">
<view v-for="(x,i) in d" :key="i" class="column PB20">
<view class="column fz32 fontBold PB20">
<text>第{{(i+1)>9?(i+1):'0'+(i+1)}}天</text>
<text class="fz28 MT20" style="font-family: microsoft yahei ui light;">
{{x.title}}
</text>
</view>
</view>
</view>
</view>
<view class="PX30" id="title4">
<view class="PY20 row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">预定须知</text>
</view>
<view class="PB20">
<text class="itiner-win colorE1432E fontBold">重要提示</text>
</view>
<view class="PB20">
<view class="fz26">
<rich-text :nodes="dataList.feature.importantTipText?dataList.feature.importantTipText:'暂无'" class="richText"></rich-text>
</view>
</view>
<view class="PB20">
<text class="itiner-tisp colorF99710 fontBold">温馨提示</text>
</view>
<view class="PB20">
<view class="fz26">
<rich-text :nodes="dataList.feature.warmTip?dataList.feature.warmTip:'暂无'" class="richText"></rich-text>
</view>
</view>
<template v-if="dataList.feature.b2BRemarkText">
<view class="PB20">
<text class="itiner-tisp colorF99710 fontBold">同行备注</text>
</view>
<view class="PB20">
<view class="fz26">
<rich-text :nodes="dataList.feature.b2BRemarkText?dataList.feature.b2BRemarkText:'暂无'" class="richText"></rich-text>
</view>
</view>
</template>
<template v-if="dataList.feature.shopRemarkText">
<view class="PB20">
<text class="itiner-tisp colorF99710 fontBold">购物店</text>
</view>
<view class="PB20">
<view class="fz26">
<rich-text :nodes="dataList.feature.shopRemarkText?dataList.feature.shopRemarkText:'暂无'" class="richText"></rich-text>
</view>
</view>
</template>
</view>
</view>
</view>
</scroll-view>
<template v-for="(y,yi) in x.dayArray">
<view
v-if="y.childItem&&y.childItem.imaArray&&y.childItem.imaArray.length>0&&y.type==2"
class="MB20" style="border: 1px solid #ddd;">
<view v-for="(z,zi) in y.childItem.imaArray">
<image @click="previewImages(y.childItem.imaArray,zi)" :src="z.url"
mode="aspectFill" :key="zi" style="width: 100%;" v-if="y.type==2">
</image>
</view>
<view :key="yi" v-if="y.type==2" class="PA20">
<view class="fz30 fontBold PB20">{{`${y.childItem.couponsName}`}}</view>
<view class="fz28 color666">
<rich-text :nodes="y.childItem.description"
class="richText"></rich-text>
</view>
</view>
</view>
<view :key="yi" v-if="y.type==6">
<view class="fz30 fontWeight500 PY20 colorE1432E">温馨提示</view>
<view class="fz28 PB20 color666">
<rich-text :nodes="y.childItem.description" class="richText"></rich-text>
</view>
</view>
</template>
<view class="row" v-if="x.canshi">
<view>
<image style="width: 45rpx;height: 45rpx;display: block;" mode="aspectFill"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638876765053973357.png" />
</view>
<view class="PL20">
<view class="row PB20" v-for="item in x.canshi">
<view class="fz34 fontBold MR20 flexS">
{{`${item.childItem.timeStr} ${item.childItem.dinnerTypeName}`}}
</view>
<view class="fz28 MR20 color666">
{{item.childItem.dinnerName?item.childItem.dinnerName:'方便游玩敬请自理'}}
</view>
</view>
</view>
</view>
<view class="row" v-if="x.zhusu">
<view>
<image style="width: 45rpx;height: 45rpx;display: block;" mode="aspectFill"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638876765089861843.png" />
</view>
<view class="PL20">
<view class="row" v-for="item in x.zhusu">
<view class="fz34 fontBold MR20 flexS">
住宿
</view>
<view class="fz28 MR20 color666">{{item.childItem.hotelName}}</view>
</view>
</view>
</view>
</view>
</view>
<view class="PB20 bgFFF" v-if="dataList.feature&&dataList.feature.detailsImageList.length>0">
<image class="MB20" :src="x"
@click='previewTravelPicHandler(x,dataList.feature.detailsImageList)' mode="widthFix"
style="width: 100%;height: auto;" v-for="x in dataList.feature.detailsImageList">
</image>
</view>
</view>
</view>
<view class="PX30" id="title3">
<view class="PY20 row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">费用说明</text>
</view>
<view class="PB20">
<text class="itiner-feiyong">费用包含</text>
</view>
<view class="PB20">
<view class="fz26 color666">
<rich-text :nodes="dataList.feature.feeInclude?dataList.feature.feeInclude:'暂无'"
class="richText"></rich-text>
</view>
</view>
<view class="PB20">
<text class="itiner-feiyong">费用不含</text>
</view>
<view class="PB20">
<view class="fz26 color666">
<rich-text :nodes="dataList.feature.feeNonInclude?dataList.feature.feeNonInclude:'暂无'"
class="richText"></rich-text>
</view>
</view>
</view>
<view class="PX30" id="title4">
<view class="PY20 row items-center">
<view class="itiner-left-line">&nbsp;</view>
<text class="fz32 fontBold ML20">预定须知</text>
</view>
<view class="PB20">
<text class="itiner-win colorE1432E fontBold">重要提示</text>
</view>
<view class="PB20">
<view class="fz26">
<rich-text :nodes="dataList.feature.importantTipText?dataList.feature.importantTipText:'暂无'"
class="richText"></rich-text>
</view>
</view>
<view class="PB20">
<text class="itiner-tisp colorF99710 fontBold">温馨提示</text>
</view>
<view class="PB20">
<view class="fz26">
<rich-text :nodes="dataList.feature.warmTip?dataList.feature.warmTip:'暂无'"
class="richText"></rich-text>
</view>
</view>
<template v-if="dataList.feature.b2BRemarkText">
<view class="PB20">
<text class="itiner-tisp colorF99710 fontBold">同行备注</text>
</view>
<view class="PB20">
<view class="fz26">
<rich-text :nodes="dataList.feature.b2BRemarkText?dataList.feature.b2BRemarkText:'暂无'"
class="richText"></rich-text>
</view>
</view>
</template>
<template v-if="dataList.feature.shopRemarkText">
<view class="PB20">
<text class="itiner-tisp colorF99710 fontBold">购物店</text>
</view>
<view class="PB20">
<view class="fz26">
<rich-text :nodes="dataList.feature.shopRemarkText?dataList.feature.shopRemarkText:'暂无'"
class="richText"></rich-text>
</view>
</view>
</template>
</view>
</view>
</view>
</scroll-view>
</template>
<script>
export default {
data() {
return {
scrollTop: 0,
old: {
scrollTop: 0
},
boxOption: 0,
titleStyle: {
opacity: 0,
},
imgsList: [
{
url: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
Path: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
},
{
url: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
Path: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
},
],
titlesList:[{
Name: '行程特色',
ID: 1,
val: 'title1',
top: 0,
},
{
Name: '行程',
ID: 2,
val: 'title2',
top: 0,
},
{
Name: '费用说明',
ID: 3,
val: 'title3',
top: 0,
},
{
Name: '预定须知',
ID: 4,
val: 'title4',
top: 0,
},
],
current: 1,
msg: {
configId: '',
cityId: '',
tcid: '',
},
dataList: {},
priceList: [],
isDownloading: false,
showQinDan: false,
showMaiDian: false,
showHangBan: false,
d: [],
Up: {},
}
},
computed: {
export default {
data() {
return {
scrollTop: 0,
old: {
scrollTop: 0
},
boxOption: 0,
titleStyle: {
opacity: 0,
},
imgsList: [{
url: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
Path: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
},
{
url: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
Path: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png',
},
],
titlesList: [{
Name: '行程特色',
ID: 1,
val: 'title1',
top: 0,
},
{
Name: '行程',
ID: 2,
val: 'title2',
top: 0,
},
{
Name: '费用说明',
ID: 3,
val: 'title3',
top: 0,
},
{
Name: '预定须知',
ID: 4,
val: 'title4',
top: 0,
},
],
current: 1,
msg: {
configId: '',
cityId: '',
tcid: '',
},
dataList: {},
priceList: [],
isDownloading: false,
showQinDan: false,
showMaiDian: false,
showHangBan: false,
d: [],
Up: {},
}
},
computed: {
},
created() {
},
created() {
},
onLoad(options) {
if(options.configId){
this.msg.configId = options.configId
this.init()
}
if(options.TCID){
this.msg.tcid = options.TCID
}
this.Up = uni.getStorageSync("mall_UserInfo") ?
},
onLoad(options) {
if (options.configId) {
this.msg.configId = options.configId
this.init()
}
if (options.TCID) {
this.msg.tcid = options.TCID
}
this.Up = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").UserPageType :
0;
},
onShow() {
let that = this;
uni.getSystemInfo({
success(res) {
that.titleStyle = {
height: "45px",
paddingTop: `${res.statusBarHeight}px`,
opacity: "0",
};
},
});
},
watch: {
d:{
handler(newVal,oldVal){
if(this.d&&this.d.length > 0){
setTimeout(()=>{
this.titlesList.forEach((x,index) => {
if(index==1) x.Name = `${this.dataList.dayNum}日行程`
const query = uni.createSelectorQuery().select(`#${x.val}`);
if(query) query.boundingClientRect((rect) => {
x.top = rect.top-130;
}).exec();
if(index==3) uni.hideLoading()
})
},10000)
}
},
deep:true,
immediate:false
},
},
mounted() {
},
onShow() {
let that = this;
uni.getSystemInfo({
success(res) {
that.titleStyle = {
height: "45px",
paddingTop: `${res.statusBarHeight}px`,
opacity: "0",
};
},
});
},
watch: {
d: {
handler(newVal, oldVal) {
if (this.d && this.d.length > 0) {
setTimeout(() => {
this.titlesList.forEach((x, index) => {
if (index == 1) x.Name = `${this.dataList.dayNum}日行程`
const query = uni.createSelectorQuery().select(`#${x.val}`);
if (query) query.boundingClientRect((rect) => {
x.top = rect.top - 130;
}).exec();
if (index == 3) uni.hideLoading()
})
}, 10000)
}
},
deep: true,
immediate: false
},
},
mounted() {
},
methods: {
goTop(item) {
this.current = item.ID;
this.$nextTick(function() {
this.scrollTop = item.top
});
},
async formatDay() {
this.d = this.dataList.dayList
if (this.d.length > 0) {
await 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];
}
});
x.dayArray = x.dayArray.sort((a, b) => {
return new Date(a.type) - new Date(b.type)
})
x.zhusu = x.dayArray.filter(z => z.type == 3)
x.canshi = x.dayArray.filter(z => z.type == 4)
});
}
},
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;
},
init() {
uni.showLoading({
title: '加载中...',
})
this.apipost("b2b_get_GetB2BTravelInfoNoDes", this.msg, (res) => {
if (res.resultCode == 1) {
res.data.tempImgCover = JSON.parse(res.data.imgCover);
this.dataList = res.data
this.priceList = res.data.priceList
this.formatDay()
}
}, (failed) => {
uni.hideLoading()
uni.showToast({
title: failed.message,
icon: "none",
});
}, (error) => {
uni.hideLoading()
})
},
goback() {
uni.navigateBack({
delta: 1,
});
},
previewImages(images, cur) {
let imgObj = [];
if (images[0].url) {
imgObj = []
images.forEach(x => imgObj.push(x.url))
}
uni.previewImage({
urls: imgObj,
current: cur,
})
},
previewTravelPicHandler(url, urls) {
uni.previewImage({
urls: urls,
current: url,
})
},
openPicture() {
let imgObj = JSON.stringify(this.dataList.tempImgCover);
uni.navigateTo({
url: "/pages/hotel/picture?imgObj=" + imgObj + "&isLine=1",
});
},
scroll(e) {
this.old.scrollTop = e.detail.scrollTop
this.boxOption = Math.floor((e.detail.scrollTop - 650) / 1.5);
this.titleStyle.opacity =
e.detail.scrollTop - 650 < 0 ?
0 :
Math.floor(e.detail.scrollTop - 650) / 100 > 1 ?
1 :
Math.floor(e.detail.scrollTop - 650) / 100;
this.titlesList.forEach((x, index) => {
let pev
let nex
pev = this.titlesList[index - 1]
nex = this.titlesList[index + 1]
if (this.old.scrollTop > x.top && nex != undefined && this.old.scrollTop < nex.top) {
this.current = nex.ID
} else if (this.old.scrollTop > x.top && nex == undefined) {
this.current = 4
} else if (this.old.scrollTop < x.top && pev != undefined && this.old.scrollTop > pev.top) {
this.current = pev.ID
} else if (this.old.scrollTop < x.top && pev == undefined) {
this.current = 1
}
})
this.$forceUpdate();
},
downloadTripPlanHandler() {
if (this.isDownloading) return;
let that = this
uni.showLoading({
title: '这可能需要30秒,请耐心等待'
})
this.isDownloading = true
let url =
`https://im.oytour.com/TripDownLoad/${this.msg.configId}_${this.msg.tcid}/${this.msg.configId}_${this.msg.tcid}.pdf`
},
methods: {
goTop(item) {
this.current = item.ID;
this.$nextTick(function() {
this.scrollTop = item.top
});
},
async formatDay() {
this.d = this.dataList.dayList
if (this.d.length > 0) {
await 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];
}
});
x.dayArray = x.dayArray.sort((a,b)=>{
return new Date(a.type) - new Date(b.type)
})
x.zhusu = x.dayArray.filter(z=>z.type==3)
x.canshi = x.dayArray.filter(z=>z.type==4)
});
}
},
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;
},
init(){
uni.showLoading({
title: '加载中...',
})
this.apipost("b2b_get_GetB2BTravelInfoNoDes", this.msg, (res) => {
if (res.resultCode == 1) {
res.data.tempImgCover = JSON.parse(res.data.imgCover);
this.dataList = res.data
this.priceList = res.data.priceList
this.formatDay()
}
}, (failed) => {
uni.hideLoading()
uni.showToast({
title: failed.message,
icon: "none",
});
}, (error) => {
uni.hideLoading()
})
},
goback() {
uni.navigateBack({
delta: 1,
});
},
previewImages(images, cur) {
let imgObj = [];
if (images[0].url) {
imgObj = []
images.forEach(x => imgObj.push(x.url))
}
uni.previewImage({
urls: imgObj,
current: cur,
})
},
previewTravelPicHandler(url, urls) {
uni.previewImage({
urls: urls,
current: url,
})
},
openPicture() {
let imgObj = JSON.stringify(this.dataList.tempImgCover);
uni.navigateTo({
url: "/pages/hotel/picture?imgObj=" + imgObj+"&isLine=1",
});
},
scroll(e) {
this.old.scrollTop = e.detail.scrollTop
this.boxOption = Math.floor((e.detail.scrollTop - 650) / 1.5);
this.titleStyle.opacity =
e.detail.scrollTop - 650 < 0 ?
0 :
Math.floor(e.detail.scrollTop - 650) / 100 > 1 ?
1 :
Math.floor(e.detail.scrollTop - 650) / 100;
this.titlesList.forEach((x,index)=>{
let pev
let nex
pev = this.titlesList[index-1]
nex = this.titlesList[index+1]
if(this.old.scrollTop>x.top&&nex!=undefined&&this.old.scrollTop<nex.top){
this.current = nex.ID
}else if(this.old.scrollTop>x.top&&nex==undefined){
this.current = 4
} else if(this.old.scrollTop<x.top&&pev!=undefined&&this.old.scrollTop>pev.top){
this.current = pev.ID
}else if(this.old.scrollTop<x.top&&pev==undefined){
this.current = 1
}
})
this.$forceUpdate();
},
downloadTripPlanHandler() {
if (this.isDownloading) return;
let that = this
uni.showLoading({
title: '这可能需要30秒,请耐心等待'
})
this.isDownloading = true
let url =
`https://im.oytour.com/TripDownLoad/${this.msg.configId}_${this.msg.tcid}/${this.msg.configId}_${this.msg.tcid}.pdf`
let fileName =
`${this.dataList.ltName.replace(/\s+/g,"").replaceAll("/","")}`
let fileName =
`${this.dataList.ltName.replace(/\s+/g,"").replaceAll("/","")}`
const filePath = wx.env.USER_DATA_PATH + `/${fileName}.pdf`
uni.downloadFile({
url: url,
filePath,
success: (res) => {
wx.openDocument({
filePath: filePath,
showMenu: true,
success: fres => {
uni.hideLoading()
that.isDownloading = false
},
fail: fres => {
console.log('downloadTripPlanHandler_打开失败', fres)
that.downloadFailed('打开失败,请重试。如果仍然失败,请联系销售索要PDF行程')
},
})
},
fail(err) {
console.log("downloadTripPlanHandler_fail", err)
that.downloadFailed('下载失败,请重试。如果仍然失败,请联系销售索要PDF行程' + err)
},
});
},
downloadFailed(msg) {
uni.showToast({
icon: 'none',
title: msg
})
this.isDownloading = false;
},
// #ifdef MP-WEIXIN
const filePath = wx.env.USER_DATA_PATH + `/${fileName}.pdf`
uni.downloadFile({
url: url,
filePath,
success: (res) => {
wx.openDocument({
filePath: filePath,
showMenu: true,
success: fres => {
uni.hideLoading()
that.isDownloading = false
},
fail: fres => {
console.log('downloadTripPlanHandler_打开失败', fres)
that.downloadFailed('打开失败,请重试。如果仍然失败,请联系销售索要PDF行程')
},
})
},
fail(err) {
console.log("downloadTripPlanHandler_fail", err)
that.downloadFailed('下载失败,请重试。如果仍然失败,请联系销售索要PDF行程' + err)
},
});
},
downloadFailed(msg) {
uni.showToast({
icon: 'none',
title: msg
})
this.isDownloading = false;
},
// #ifdef MP-WEIXIN
//分享朋友圈
onShareTimeline() {
let uid = uni.getStorageSync("mall_UserInfo") ?
......@@ -778,7 +800,7 @@ export default {
"&configId=" +
this.msg.configId +
"&cityId=" +
this.msg.cityId+this.$uiConfig.DIRECT_PARAMETER,
this.msg.cityId + this.$uiConfig.DIRECT_PARAMETER,
imageUrl: imageUrl,
};
},
......@@ -809,7 +831,7 @@ export default {
"&configId=" +
this.msg.configId +
"&cityId=" +
this.msg.cityId+this.$uiConfig.DIRECT_PARAMETER,
this.msg.cityId + this.$uiConfig.DIRECT_PARAMETER,
imageUrl: "",
// imageUrl:
// this.dataList.tempImgCover && this.dataList.tempImgCover.length > 0
......@@ -817,6 +839,6 @@ export default {
// : "",
};
},
},
}
},
}
</script>
\ No newline at end of file
......@@ -542,8 +542,8 @@
title: '保存中...'
})
this.apipost("dmcstatistics_post_SetNewLeaderApplyList_V2", this.params, (res) => {
this.loading = false;
if (res.resultCode == 1) {
this.loading = false
uni.showToast({
title: '操作成功!',
icon: 'success',
......
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