Commit 1addad72 authored by 黄奎's avatar 黄奎

合同行程调整

parent d3c8219a
......@@ -886,9 +886,147 @@
(8)行程安排的娱乐活动(明确娱乐活动的时间、地点和项目内容);
《行程单》用语须准确清晰,在表明服务标准用语中不应当出现“准×星级”、“豪华”、“仅供参考”、“以××为准”、“与××同级”等不确定用语。
</div>
<div v-if="IsLoad==1">
<!-- <div v-if="IsLoad==1">
<commonTripList @tripData="tripData" :ContractTripList="CtObj.ContractTripList" :TripType="CtObj.TripType">
</commonTripList>
</div> -->
<div v-if="CtObj.ID>0&&CtObj.ContractTripList&&CtObj.ContractTripList.length==1"
v-html="CtObj.ContractTripList[0].TravelContent" ref="TcTravel_Table"></div>
<div v-else ref="TcTravel_Table">
<table class="TcTravel_Table">
<tbody>
<tr>
<td colspan="5" contenteditable="true">组团社:印象之旅</td>
</tr>
<tr>
<td colspan="5" contenteditable="true">
旅游线路名称:{{
CtObj.C_ProductName
}}&nbsp;&nbsp;&nbsp;&nbsp;行程共计:{{ CtObj.C_DayNum }}
{{ CtObj.C_NightNum }}晚(含在途时间)
</td>
</tr>
<tr>
<td colspan="5" contenteditable="true">
出发时间:{{
getDate(CtObj.C_StartDate)
}}&nbsp;&nbsp;&nbsp;&nbsp; 出发地点:{{
CtObj.C_StartAddress
}}
&nbsp;&nbsp;&nbsp;&nbsp;目的地:{{
CtObj.touristDestination
}}
</td>
</tr>
<tr>
<td colspan="5" contenteditable="true">
结束时间:{{
getDate(CtObj.C_EndDate)
}}&nbsp;&nbsp;&nbsp;&nbsp; 返回地点:{{ CtObj.C_ReturnAddress }}
</td>
</tr>
<tr>
<td colspan="5">
<div style="display: flex">
<span>地接社名称:</span>
<div contenteditable="true" style="width: 250px">
株式会社 ピースインターナショナル
</div>
</div>
</td>
</tr>
<tr>
<td style="width: 15%">行程时间</td>
<td style="width: 50%">主要景点名称(游览时间)</td>
<td>交通工具(标准)</td>
<td>酒店标准</td>
<td>房间标准</td>
</tr>
<tr v-for="(item, index) in tripDays" :key="`td_`+index">
<td contenteditable="true">
{{ getDayAddOne(CtObj.C_StartDate, index) }}
</td>
<td contenteditable="true">
<div v-for="(subItem,subIndex) in item.dayArray" :key="`tdd_`+index+subIndex">
<span v-if="subItem.type == 2">
{{ subItem.childItem.couponsName }}
<span v-if="
subItem.childItem.playTimeHour != null &&
subItem.childItem.playTimeHour != ''
">{{ subItem.childItem.playTimeHour }}小时</span>
<span v-if="
subItem.childItem.playTimeMinutes != null &&
subItem.childItem.playTimeMinutes != ''
">
<template v-if="
subItem.childItem.playTimeHour == null &&
subItem.childItem.playTimeHour != ''
"></template>
{{ subItem.childItem.playTimeMinutes }}分钟)</span>
</span>
<span v-if="
subItem.type == 7 &&
(index == 0 || index == tripDays.length - 1)
">
{{ subItem.childItem.title }}
</span>
</div>
</td>
<td contenteditable="true">
{{ item.TrifficType }}
</td>
<td contenteditable="true">
<span v-if="index != tripList.length - 1">旅游酒店</span>
<span v-else></span>
</td>
<td contenteditable="true">
<span v-if="index != tripList.length - 1">双人间</span>
<span v-else></span>
</td>
</tr>
<tr>
<td colspan="5" class="TC_LASTTD" contenteditable="true">
<div>
备注:1、在主要景点的游览时间不小于此数的时间,以小时填;<br />
2、交通工具不含景区观光车、索道等;<br />
3、“交通工具”栏中的“标准”按各类别的标准填写。
</div>
<div>
飞机:头等舱/商务舱/经济舱;&nbsp;&nbsp;&nbsp;汽车:空调大巴/空调卧铺/普通客车
</div>
<div>
火车:普通车/空调车/动车组(其中:软卧/硬卧/软座/硬座);
</div>
<div style="color: red">
注:用房
:全程酒店均为二人一间,如您的订单产生单房,在未补单房差的情况下,我社将尽量安排您与其它客人拼房或是与同行者入住三人房,不可选择房型。敬请配合,服从调配。
</div>
<template v-if="CtObj.TeamType == 2">
<div>
备注:<br />
注:《1》本行程交通、住宿、用餐、观光点尽量忠于原行程,若遇特殊状况:如天气、交通阻塞、路况等、观光点休假、住宿饭店调整及其它不可抗拒之现象,行程会有所变动,相应调整,本公司保有变更行程之权利。尽量忠于原行程,敬请谅解!<br />
注:《2》根据人数调配车型,不可以指定车型车牌!<br />
注:《3》由于停车问题,司机兼向导大多数情况下为沿途讲解,不入景区,司机兼向导最重要的是保证贵宾的行车安全,敬请谅解!如果对讲解有特别高的要求,建议加配专职导游! <br />
注:《4》あいおいニッセイ同和損害保険株式会社的保险保障只针对日本以外的外国人有效,不适用于:持在留卡者及日本本国人。敬请注意!<br />
【行程中的观光时间仅限参考,实际旅行过程中有时间浮动敬请贵宾谅解为谢!!!】<br />
※因本行程为精品拼团游,雨雪天行驶较为困难,故建议于出发前
10 分钟⾄集合地点等候,请贵宾注意集合时间。<br />
※⾏程时间由司导根据⻋程远近等情况来进⾏安排,请互相理解配合,统⼀听从司导安排!精品散拼团
请贵宾时间严守!<br />
※再次提醒短途旅行,请贵宾携带小包出行,【不要带大件礼箱!】<br />
【退改规则】<br />
出发前 11-8 天(不含),收取损失30%。<br />
出发前 3~7(不含),收取损失50%。<br />
出发前 2~3 天(含),收取损失 80%。<br />
出发前 1 天(含),将不退还任何费⽤,收取损失100%<br />
</div>
</template>
</td>
</tr>
</tbody>
</table>
</div>
<div style="padding:10px;background:#f9f9f9;color:red;">
注:用房
......@@ -1139,13 +1277,13 @@
</div>
</template>
<script>
import moment from "moment";
import commonTripList from "./commonPage/commonTripList.vue";
export default {
data() {
return {
//选中切换
cked: 1,
IsLoad: 0, //是加载行程信息
//查询参数
msg: {
TCID: 0,
......@@ -1366,12 +1504,30 @@
tripStr: '切换到标准行程录入',
//防止重复提交
isSubmit: true,
startDate: "",
tripDays: [],
trifficList: [],
tripList: [],
LineName: "",
};
},
components: {
commonTripList: commonTripList
},
methods: {
getDate(date) {
if (date && date != "") {
return moment(date).format("YYYY-MM-DD");
}
return "";
},
//加一天返回
getDayAddOne(day, num) {
if (day && day != "") {
return moment(day).add(num, "days").format("MM/DD");
}
return "";
},
changeSignType() {
if (this.CtObj.SignType == 0) {
this.CtObj.TravelAgency_Name = "四川和平国际旅行社有限公司";
......@@ -1407,6 +1563,9 @@
//提交数据
SaveMsg() {
if (this.isSubmit) {
if (this.CtObj.ContractTripList && this.CtObj.ContractTripList.length > 0) {
this.CtObj.ContractTripList[0].TravelContent = this.$refs.TcTravel_Table.innerHTML;
}
this.isSubmit = false;
this.apipost(
"travelcontract_post_SetTravelContractService",
......@@ -1416,11 +1575,14 @@
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.CtObj.ID = res.data.data;
this.$router.push({
name: 'DomesticTravelcontract',
query: {
var queryMsg = {
id: res.data.data,
TCID: this.CtObj.TCID,
OrderId: this.CtObj.OrderId,
}
this.$router.push({
name: 'DomesticTravelcontract',
query: queryMsg
});
} else {
this.Error(res.data.message);
......@@ -1478,7 +1640,6 @@
delWilling(index) {
this.CtObj.ContractSelfFeeList.splice(index, 1);
},
//添加游客信息
addTourist() {
this.CtObj.ContractGuestList.forEach((x, index) => {
......@@ -1558,13 +1719,17 @@
GetData() {
this.apipost(
"travelcontract_get_GetTravelContractService", {
ID: this.CtObj.ID
ID: this.CtObj.ID,
TCID: this.CtObj.TCID,
OrderId: this.CtObj.OrderId,
},
res => {
if (res.data.resultCode == 1) {
var tempObj = res.data.data;
this.CtObj.ID = tempObj.ID;
if (tempObj.CType) {
this.CtObj.CType = tempObj.CType;
}
this.CtObj.T_ContractNum = tempObj.T_ContractNum;
this.CtObj.Tourists_Name = tempObj.Tourists_Name;
this.CtObj.Tourists_IDNum = tempObj.Tourists_IDNum;
......@@ -1662,9 +1827,15 @@
this.CtObj.PickUpTotalPrice = tempObj.PickUpTotalPrice;
this.CtObj.VisaTotalPrice = tempObj.VisaTotalPrice;
this.CtObj.GuestNum = tempObj.GuestNum;
this.CtObj.TravelAgency_Name=tempObj.TravelAgency_Name;
this.CtObj.TravelAgency_Address=tempObj.TravelAgency_Address;
this.CtObj.TravelAgency_LicenseNum=tempObj.TravelAgency_LicenseNum;
if (tempObj.TravelAgency_Name && tempObj.TravelAgency_Name != '') {
this.CtObj.TravelAgency_Name = tempObj.TravelAgency_Name;
}
if (tempObj.TravelAgency_Address && tempObj.TravelAgency_Address != '') {
this.CtObj.TravelAgency_Address = tempObj.TravelAgency_Address;
}
if (tempObj.TravelAgency_LicenseNum && tempObj.TravelAgency_LicenseNum != '') {
this.CtObj.TravelAgency_LicenseNum = tempObj.TravelAgency_LicenseNum;
}
this.CtObj.TicketAndHotelTotalPrice =
tempObj.TicketAndHotelTotalPrice;
if (
......@@ -1730,8 +1901,16 @@
this.CtObj.ContractTripList = tempObj.ContractTripList;
} else {
this.CtObj.ContractTripList = [];
var tripObj = {
TripType: 1,
DayNum: 1,
Go: "",
GoProvice: "",
IsOut: 0,
TravelContent: ""
};
this.CtObj.ContractTripList.push(tripObj);
}
this.IsLoad = 1;
} else {
this.Error(res.data.message);
}
......@@ -1749,10 +1928,273 @@
item.IsShow = 0;
this.$forceUpdate();
},
//获取行程信息
GetTrip(TCID) {
this.tripList = [];
this.startDate = "";
var nTCID = 0;
if (TCID) {
nTCID = TCID;
}
var msg = {
configId: 0,
tcid: nTCID,
isClick: 1, //不算统计
};
//根据ID 获取行程内容
this.apipost(
"b2b_get_GetB2BTravelInfoNoDes",
msg,
(res) => {
if (res.data.resultCode == 1) {
if (
res.data.data.priceList &&
res.data.data.priceList.length > 0
) {
this.startDate = res.data.data.priceList[0].startDate;
}
this.tripDays = res.data.data.dayList;
this.trifficList = res.data.data.trafficList;
this.tripList = res.data.data.dayList;
this.LineName = res.data.data.lineName;
this.init();
}
},
(err) => {});
},
init() {
this.tripList.forEach((x, j) => {
let useDinnerTypeBy = "";
let jin = [],
jiu = [],
jiu2 = [],
jiao = [],
dadian = [],
tips = [],
activy = [],
can = {
breakfirst: "敬请自理",
lanuch: "敬请自理",
dinner: "敬请自理",
};
x.dayArray.forEach((y, index) => {
if (y.type == 7 && y.childItem.title != "") {
let obj = {
title: y.childItem.title,
content: y.childItem.description,
img: y.childItem.imaArray && y.childItem.imaArray.length > 0 ?
y.childItem.imaArray[0].url : "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
dadian.push(obj);
} else if (y.type == 1 && y.childItem.subTraffic.length > 0) {
let title = "";
y.childItem.subTraffic.forEach((z, i) => {
title += z.startCityName;
if (z.arrivalType == 1) {
title += "-";
} else if (z.arrivalType == 2) {
title += "-";
} else if (z.arrivalType == 3) {
title += "-";
} else {
title += "-";
}
if (i + 1 == y.childItem.subTraffic.length) {
title += z.arrivalCityName;
}
});
let obj = {
title: title,
content: y.childItem.description,
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
jiao.push(obj);
} else if (
y.type == 2 &&
y.childItem.couponsName != "" &&
y.childItem.imaArray.length > 0
) {
let obj = {
title: y.childItem.couponsName,
content: y.childItem.description,
img: y.childItem.imaArray[0].url,
ticketName: y.childItem.couponsTicketName,
playTimeHour: y.childItem.playTimeHour,
playTimeMinutes: y.childItem.playTimeHour,
};
jin.push(obj);
} else if (
y.type == 3 &&
y.childItem.hotelName != "" &&
y.childItem.imaArray.length > 0
) {
let obj = {
title: y.childItem.hotelName,
content: y.childItem.description,
img: y.childItem.imaArray[0].url,
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
jiu.push(obj);
} else if (y.type == 4) {
if (y.childItem.useDinnerType == "1") {
can.breakfirst = y.childItem.dinnerName;
} else if (y.childItem.useDinnerType == "2") {
can.lanuch = y.childItem.dinnerName;
} else if (y.childItem.useDinnerType == "3") {
can.dinner = y.childItem.dinnerName;
}
} else if (y.type == 5) {
let obj = {
title: "自由活动",
content: y.childItem.description,
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
activy.push(obj);
} else if (y.type == 6) {
let obj = {
title: y.childItem.title,
content: y.childItem.description,
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
tips.push(obj);
}
if (y.type == 3) {
jiu2.push(y.childItem.hotelName);
useDinnerTypeBy = y.childItem.useDinnerType;
}
});
if (
can.breakfirst == "敬请自理" &&
useDinnerTypeBy.indexOf("1") != -1
) {
can.breakfirst = "酒店内享用早餐";
}
if (can.lanuch == "敬请自理" && useDinnerTypeBy.indexOf("2") != -1) {
can.lanuch = "酒店自助";
}
if (can.dinner == "敬请自理" && useDinnerTypeBy.indexOf("3") != -1) {
can.dinner = "酒店自助";
}
x.can = can;
let details = [];
x.tips = tips;
x.jiu2 = jiu2;
if (jin.length > 0) {
details = jin;
} else if (jiu.length > 0) {
details = jiu;
} else if (dadian.length > 0) {
details = dadian;
} else if (jiao.length > 0) {
if (j == this.tripList.length - 1) {
let obj = {
title: "温暖的家",
content: "感谢您参加本次行程,期待下次与您相遇",
img: "",
};
details.push(obj);
} else {
details = jiao;
}
} else if (activy.length > 0) {
details = activy;
}
x.title =
dadian.length > 0 ?
dadian[0].title :
jiao.length > 0 ?
jiao[0].title :
"集合出发";
x.details = details;
if (x.details.length == 0) {
if (j == 0) {
let obj = {
title: "集合出发",
content: "向着远方的目标出发起飞",
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
details.push(obj);
} else if (j == this.tripList.length - 1) {
let obj = {
title: "温暖的家",
content: "感谢您参加本次行程,期待下次与您相遇",
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
details.push(obj);
}
} else {
if (x.title == "集合出发") {
x.details.forEach((xc) => {
if (xc.title !== undefined) x.title = xc.title + "~";
});
if (x.title == "集合出发") {
if (j > 0 && j < tripList.length - 1) x.title = "自由活动";
} else {
x.title = x.title.substring(0, x.title.length - 1);
}
}
}
x.islast = j + 1 == this.tripList.length;
this.$set(this.tripList, j, x);
});
for (let i = this.tripList.length - 1; i >= 0; i--) {
if (i == 0) this.tripList[i].can.breakfirst = "敬请自理";
else {
this.tripList[i].can.breakfirst = this.tripList[i - 1].can.breakfirst;
if (
this.tripList[i].lineId != 5 &&
this.tripList[i].can.breakfirst == "敬请自理"
)
this.tripList[i].can.breakfirst = "酒店内享用早餐";
}
}
this.trifficList.forEach((x, index) => {
if (x.airportPickUp == 1 || x.airportPickUp == 2) {
if (x.isUseBus == 1) {
this.tripDays[index].TrifficType = "飞机+大巴";
}
}
if (x.airportPickUp == 0 && x.isUseBus == 1) {
this.tripDays[index].TrifficType = "大巴";
}
if (x.airportPickUp == 1 || x.airportPickUp == 2) {
if (x.isUseBus == 0) {
this.tripDays[index].TrifficType = "飞机";
}
}
if (x.airportPickUp == 0 || x.airportPickUp == 0) {
if (x.isUseBus == 0) {
this.tripDays[index].TrifficType = "无";
}
}
});
},
},
created() {
if (this.$route.query.TCID && this.$route.query.TCID > 0) {
this.CtObj.TCID = this.$route.query.TCID;
this.GetTrip(this.CtObj.TCID);
}
if (this.$route.query.orderID && this.$route.query.orderID > 0) {
this.CtObj.OrderId = this.$route.query.orderID;
......@@ -1761,9 +2203,9 @@
mounted() {
if (this.$route.query.id && this.$route.query.id > 0) {
this.CtObj.ID = this.$route.query.id;
}
if (this.CtObj.ID > 0 || this.CtObj.TCID > 0) {
this.GetData();
} else {
this.IsLoad = 1;
}
this.$nextTick(function () {
//滚动监听事件
......
......@@ -2211,7 +2211,6 @@
tcid: nTCID,
isClick: 1, //不算统计
};
if (id !== undefined) {
//根据ID 获取行程内容
this.apipost(
"b2b_get_GetB2BTravelInfoNoDes",
......@@ -2233,143 +2232,6 @@
},
(err) => {}
);
} else {
var dayList = [];
this.subConfig.DayList.forEach((objItem, objIndex) => {
var dayItem = this.$tripUtils.daysArrayObj();
dayItem.dayNum = objItem.dayNum;
//每一天的数组
var dayArray = [];
//子项遍历
objItem.dayArray.forEach((subItem) => {
switch (subItem.Type) {
//交通
case "1":
var subTraffiArray = [];
subItem.childItem.SubTraffic.forEach((subTrafficItem) => {
subTraffiArray.push({
startCityName: subTrafficItem.StartCityName,
arrivalType: subTrafficItem.ArrivalType,
arrivalCityName: subTrafficItem.ArrivalCityName,
});
});
var trafficObj = {
type: subItem.Type,
childItem: {
description: subItem.childItem.Description,
subTraffic: subTraffiArray,
},
};
dayArray.push(trafficObj);
break;
//景点
case "2":
var imgArray = [];
subItem.childItem.ImaArray.forEach((imgItem) => {
imgArray.push({
url: imgItem.Url,
name: imgItem.Name,
});
});
var scenicObj = {
type: subItem.Type,
childItem: {
couponsName: subItem.childItem.CouponsName,
couponsTicketName: subItem.childItem.CouponsTicketName,
playTimeHour: subItem.childItem.PlayTimeHour,
playTimeMinutes: subItem.childItem.PlayTimeMinutes,
description: subItem.childItem.Description,
imaArray: imgArray,
},
};
dayArray.push(scenicObj);
break;
//酒店
case "3":
var imgArray = [];
subItem.childItem.ImaArray.forEach((imgItem) => {
imgArray.push({
url: imgItem.Url,
name: imgItem.Name,
});
});
var hotelObj = {
type: subItem.Type,
childItem: {
hotelName: subItem.childItem.HotelName,
hotelProductName: subItem.childItem.HotelProductName,
useDinnerType: subItem.childItem.UseDinnerType,
description: subItem.childItem.Description,
imaArray: imgArray,
},
};
dayArray.push(hotelObj);
break;
//餐厅
case "4":
var imgArray = [];
subItem.childItem.ImaArray.forEach((imgItem) => {
imgArray.push({
url: imgItem.Url,
name: imgItem.Name,
});
});
var dinnerObj = {
type: subItem.Type,
childItem: {
dinnerName: subItem.childItem.DinnerName,
mealName: subItem.childItem.MinnerName,
useDinnerType: subItem.childItem.UseDinnerType,
useTimeHour: subItem.childItem.UseTimeHour,
useTimeMinutes: subItem.childItem.UseTimeMinutes,
description: subItem.childItem.Description,
descriptionText: subItem.childItem.Description,
imaArray: imgArray,
},
};
dayArray.push(dinnerObj);
break;
//自由活动
case "5":
var freedomObj = {
type: subItem.Type,
childItem: {
description: subItem.Description,
descriptionText: subItem.Description,
},
};
dayArray.push(freedomObj);
break;
//温馨提示
case "6":
var warmObj = {
type: subItem.Type,
childItem: {
description: subItem.Description,
descriptionText: subItem.Description,
},
};
dayArray.push(warmObj);
break;
//行程大点
case "7":
var titleObj = {
type: subItem.Type,
childItem: {
title: subItem.childItem.Title,
description: subItem.childItem.Description,
},
};
dayArray.push(titleObj);
break;
}
});
dayItem.dayArray = dayArray;
dayList.push(dayItem);
});
this.tripList = dayList;
this.init();
}
},
init() {
this.tripList.forEach((x, j) => {
......
......@@ -346,6 +346,7 @@
cursor: default !important;
box-shadow: none !important;
}
</style>
<template>
<div class="TC-MainContent">
......@@ -903,7 +904,8 @@
</span>
<h2>
<em>行程信息</em>
<input type="button" class="Tc_ExchangeBtn" @click="exchangeTrip()" :value="tripStr" />
<input type="button" class="Tc_ExchangeBtn" @click="exchangeTrip()" :value="tripStr"
style="display:none;" />
</h2>
</div>
<div style="padding:10px;background:#f9f9f9;color:red;">
......@@ -918,9 +920,148 @@
(8)行程安排的娱乐活动(明确娱乐活动的时间、地点和项目内容);
《行程单》用语须准确清晰,在表明服务标准用语中不应当出现“准×星级”、“豪华”、“仅供参考”、“以××为准”、“与××同级”等不确定用语。
</div>
<div v-if="IsLoad==1">
<!-- <div v-if="IsLoad==1">
<commonTripList @tripData="tripData" :ContractTripList="CtObj.ContractTripList" :TripType="CtObj.TripType">
</commonTripList>
</div> -->
<div v-if="CtObj.ID>0&&CtObj.ContractTripList&&CtObj.ContractTripList.length==1"
v-html="CtObj.ContractTripList[0].TravelContent" ref="TcTravel_Table"></div>
<div v-else ref="TcTravel_Table">
<table class="TcTravel_Table">
<tbody>
<tr>
<td colspan="5" contenteditable="true">组团社:印象之旅</td>
</tr>
<tr>
<td colspan="5" contenteditable="true">
旅游线路名称:{{
CtObj.C_ProductName
}}&nbsp;&nbsp;&nbsp;&nbsp;行程共计:{{ CtObj.C_DayNum }}天
{{ CtObj.C_NightNum }}晚(含在途时间)
</td>
</tr>
<tr>
<td colspan="5" contenteditable="true">
出发时间:{{
getDate(CtObj.C_StartDate)
}}&nbsp;&nbsp;&nbsp;&nbsp; 出发地点:{{
CtObj.C_StartAddress
}}
&nbsp;&nbsp;&nbsp;&nbsp;目的地:{{
CtObj.touristDestination
}}
</td>
</tr>
<tr>
<td colspan="5" contenteditable="true">
结束时间:{{
getDate(CtObj.C_EndDate)
}}&nbsp;&nbsp;&nbsp;&nbsp; 返回地点:{{ CtObj.C_ReturnAddress }}
</td>
</tr>
<tr>
<td colspan="5">
<div style="display: flex">
<span>地接社名称:</span>
<div contenteditable="true" style="width: 250px">
株式会社 ピースインターナショナル
</div>
</div>
</td>
</tr>
<tr>
<td style="width: 15%">行程时间</td>
<td style="width: 50%">主要景点名称(游览时间)</td>
<td>交通工具(标准)</td>
<td>酒店标准</td>
<td>房间标准</td>
</tr>
<tr v-for="(item, index) in tripDays" :key="`td_`+index">
<td contenteditable="true">
{{ getDayAddOne(CtObj.C_StartDate, index) }}
</td>
<td contenteditable="true">
<div v-for="(subItem,subIndex) in item.dayArray" :key="`tdd_`+index+subIndex">
<span v-if="subItem.type == 2">
{{ subItem.childItem.couponsName }}
<span v-if="
subItem.childItem.playTimeHour != null &&
subItem.childItem.playTimeHour != ''
">({{ subItem.childItem.playTimeHour }}小时</span>
<span v-if="
subItem.childItem.playTimeMinutes != null &&
subItem.childItem.playTimeMinutes != ''
">
<template v-if="
subItem.childItem.playTimeHour == null &&
subItem.childItem.playTimeHour != ''
"></template>
{{ subItem.childItem.playTimeMinutes }}分钟)</span>
</span>
<span v-if="
subItem.type == 7 &&
(index == 0 || index == tripDays.length - 1)
">
{{ subItem.childItem.title }}
</span>
</div>
</td>
<td contenteditable="true">
{{ item.TrifficType }}
</td>
<td contenteditable="true">
<span v-if="index != tripList.length - 1">旅游酒店</span>
<span v-else></span>
</td>
<td contenteditable="true">
<span v-if="index != tripList.length - 1">双人间</span>
<span v-else></span>
</td>
</tr>
<tr>
<td colspan="5" class="TC_LASTTD" contenteditable="true">
<div>
备注:1、在主要景点的游览时间不小于此数的时间,以小时填;<br />
2、交通工具不含景区观光车、索道等;<br />
3、“交通工具”栏中的“标准”按各类别的标准填写。
</div>
<div>
飞机:头等舱/商务舱/经济舱;&nbsp;&nbsp;&nbsp;汽车:空调大巴/空调卧铺/普通客车
</div>
<div>
火车:普通车/空调车/动车组(其中:软卧/硬卧/软座/硬座);
</div>
<div style="color: red">
注:用房
:全程酒店均为二人一间,如您的订单产生单房,在未补单房差的情况下,我社将尽量安排您与其它客人拼房或是与同行者入住三人房,不可选择房型。敬请配合,服从调配。
</div>
<template v-if="CtObj.TeamType == 2">
<div>
备注:<br />
注:《1》本行程交通、住宿、用餐、观光点尽量忠于原行程,若遇特殊状况:如天气、交通阻塞、路况等、观光点休假、住宿饭店调整及其它不可抗拒之现象,行程会有所变动,相应调整,本公司保有变更行程之权利。尽量忠于原行程,敬请谅解!<br />
注:《2》根据人数调配车型,不可以指定车型车牌!<br />
注:《3》由于停车问题,司机兼向导大多数情况下为沿途讲解,不入景区,司机兼向导最重要的是保证贵宾的行车安全,敬请谅解!如果对讲解有特别高的要求,建议加配专职导游! <br />
注:《4》あいおいニッセイ同和損害保険株式会社的保险保障只针对日本以外的外国人有效,不适用于:持在留卡者及日本本国人。敬请注意!<br />
【行程中的观光时间仅限参考,实际旅行过程中有时间浮动敬请贵宾谅解为谢!!!】<br />
※因本行程为精品拼团游,雨雪天行驶较为困难,故建议于出发前
10 分钟⾄集合地点等候,请贵宾注意集合时间。<br />
※⾏程时间由司导根据⻋程远近等情况来进⾏安排,请互相理解配合,统⼀听从司导安排!精品散拼团
请贵宾时间严守!<br />
※再次提醒短途旅行,请贵宾携带小包出行,【不要带大件礼箱!】<br />
【退改规则】<br />
出发前 11-8 天(不含),收取损失30%。<br />
出发前 3~7(不含),收取损失50%。<br />
出发前 2~3 天(含),收取损失 80%。<br />
出发前 1 天(含),将不退还任何费⽤,收取损失100%<br />
</div>
</template>
</td>
</tr>
</tbody>
</table>
</div>
<div style="padding:10px;background:#f9f9f9;color:red;">
注:用房
......@@ -1093,13 +1234,13 @@
</div>
</template>
<script>
import moment from "moment";
import commonTripList from "./commonPage/commonTripList.vue";
export default {
data() {
return {
//选中切换
cked: 1,
IsLoad: 0, //是加载行程信息
//参数
CtObj: {
ID: 0,
......@@ -1273,12 +1414,30 @@
TripInfo: '',
//防止重复提交
isSubmit: true,
startDate: "",
tripDays: [],
trifficList: [],
tripList: [],
LineName: "",
};
},
components: {
commonTripList: commonTripList
},
methods: {
getDate(date) {
if (date && date != "") {
return moment(date).format("YYYY-MM-DD");
}
return "";
},
//加一天返回
getDayAddOne(day, num) {
if (day && day != "") {
return moment(day).add(num, "days").format("MM/DD");
}
return "";
},
changeSignType() {
if (this.CtObj.SignType == 0) {
this.CtObj.TravelAgency_Name = "四川和平国际旅行社有限公司";
......@@ -1300,6 +1459,9 @@
//提交数据
SaveMsg() {
if (this.isSubmit) {
if (this.CtObj.ContractTripList && this.CtObj.ContractTripList.length > 0) {
this.CtObj.ContractTripList[0].TravelContent = this.$refs.TcTravel_Table.innerHTML;
}
this.isSubmit = false;
this.apipost(
"travelcontract_post_SetTravelContractService",
......@@ -1309,11 +1471,14 @@
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.CtObj.ID = res.data.data;
this.$router.push({
name: 'onedayTripContract',
query: {
var queryMsg = {
id: res.data.data,
TCID: this.CtObj.TCID,
OrderId: this.CtObj.OrderId,
}
this.$router.push({
name: 'onedayTripContract',
query: queryMsg
});
} else {
this.Error(res.data.message);
......@@ -1420,13 +1585,17 @@
GetData() {
this.apipost(
"travelcontract_get_GetTravelContractService", {
ID: this.CtObj.ID
ID: this.CtObj.ID,
TCID: this.CtObj.TCID,
OrderId: this.CtObj.OrderId,
},
res => {
if (res.data.resultCode == 1) {
var tempObj = res.data.data;
this.CtObj.ID = tempObj.ID;
if (tempObj.CType) {
this.CtObj.CType = tempObj.CType;
}
this.CtObj.T_ContractNum = tempObj.T_ContractNum;
this.CtObj.Tourists_Name = tempObj.Tourists_Name;
this.CtObj.Tourists_IDNum = tempObj.Tourists_IDNum;
......@@ -1437,18 +1606,22 @@
this.CtObj.Tourists_Fax = tempObj.Tourists_Fax;
this.CtObj.Tourists_EmergencyLinkMan = tempObj.Tourists_EmergencyLinkMan;
this.CtObj.Tourists_EmergencyLinkTel = tempObj.Tourists_EmergencyLinkTel;
if (tempObj.TravelAgency_Name && tempObj.TravelAgency_Name != '') {
this.CtObj.TravelAgency_Name = tempObj.TravelAgency_Name;
}
if (tempObj.TravelAgency_Address && tempObj.TravelAgency_Address != '') {
this.CtObj.TravelAgency_Address = tempObj.TravelAgency_Address;
}
if (tempObj.TravelAgency_LicenseNum && tempObj.TravelAgency_LicenseNum != '') {
this.CtObj.TravelAgency_LicenseNum = tempObj.TravelAgency_LicenseNum;
}
this.CtObj.TravelAgency_DealMan = tempObj.TravelAgency_DealMan;
this.CtObj.TravelAgency_IDNum = tempObj.TravelAgency_IDNum;
this.CtObj.TravelAgency_Tel = tempObj.TravelAgency_Tel;
this.CtObj.TravelAgency_Fax = tempObj.TravelAgency_Fax;
this.CtObj.TravelAgency_PostNum = tempObj.TravelAgency_PostNum;
this.CtObj.TravelAgency_Email = tempObj.TravelAgency_Email;
this.CtObj.TravelAgency_SignAddress =
tempObj.TravelAgency_SignAddress;
this.CtObj.TravelAgency_SignAddress = tempObj.TravelAgency_SignAddress;
this.CtObj.Guide_Name = tempObj.Guide_Name;
this.CtObj.Guide_Num = tempObj.Guide_Num;
this.CtObj.Guide_Tel = tempObj.Guide_Tel;
......@@ -1545,8 +1718,6 @@
gItem.IsShow = 0;
});
}
if (
tempObj.ContractGuestList &&
tempObj.ContractGuestList != null &&
......@@ -1574,8 +1745,16 @@
this.CtObj.ContractTripList = tempObj.ContractTripList;
} else {
this.CtObj.ContractTripList = [];
var tripObj = {
TripType: 1,
DayNum: 1,
Go: "",
GoProvice: "",
IsOut: 0,
TravelContent: ""
};
this.CtObj.ContractTripList.push(tripObj);
}
this.IsLoad = 1;
} else {
this.Error(res.data.message);
}
......@@ -1607,10 +1786,273 @@
item.IsShow = 0;
this.$forceUpdate();
},
//获取行程信息
GetTrip(TCID) {
this.tripList = [];
this.startDate = "";
var nTCID = 0;
if (TCID) {
nTCID = TCID;
}
var msg = {
configId: 0,
tcid: nTCID,
isClick: 1, //不算统计
};
//根据ID 获取行程内容
this.apipost(
"b2b_get_GetB2BTravelInfoNoDes",
msg,
(res) => {
if (res.data.resultCode == 1) {
if (
res.data.data.priceList &&
res.data.data.priceList.length > 0
) {
this.startDate = res.data.data.priceList[0].startDate;
}
this.tripDays = res.data.data.dayList;
this.trifficList = res.data.data.trafficList;
this.tripList = res.data.data.dayList;
this.LineName = res.data.data.lineName;
this.init();
}
},
(err) => {});
},
init() {
this.tripList.forEach((x, j) => {
let useDinnerTypeBy = "";
let jin = [],
jiu = [],
jiu2 = [],
jiao = [],
dadian = [],
tips = [],
activy = [],
can = {
breakfirst: "敬请自理",
lanuch: "敬请自理",
dinner: "敬请自理",
};
x.dayArray.forEach((y, index) => {
if (y.type == 7 && y.childItem.title != "") {
let obj = {
title: y.childItem.title,
content: y.childItem.description,
img: y.childItem.imaArray && y.childItem.imaArray.length > 0 ?
y.childItem.imaArray[0].url : "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
dadian.push(obj);
} else if (y.type == 1 && y.childItem.subTraffic.length > 0) {
let title = "";
y.childItem.subTraffic.forEach((z, i) => {
title += z.startCityName;
if (z.arrivalType == 1) {
title += "-";
} else if (z.arrivalType == 2) {
title += "-";
} else if (z.arrivalType == 3) {
title += "-";
} else {
title += "-";
}
if (i + 1 == y.childItem.subTraffic.length) {
title += z.arrivalCityName;
}
});
let obj = {
title: title,
content: y.childItem.description,
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
jiao.push(obj);
} else if (
y.type == 2 &&
y.childItem.couponsName != "" &&
y.childItem.imaArray.length > 0
) {
let obj = {
title: y.childItem.couponsName,
content: y.childItem.description,
img: y.childItem.imaArray[0].url,
ticketName: y.childItem.couponsTicketName,
playTimeHour: y.childItem.playTimeHour,
playTimeMinutes: y.childItem.playTimeHour,
};
jin.push(obj);
} else if (
y.type == 3 &&
y.childItem.hotelName != "" &&
y.childItem.imaArray.length > 0
) {
let obj = {
title: y.childItem.hotelName,
content: y.childItem.description,
img: y.childItem.imaArray[0].url,
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
jiu.push(obj);
} else if (y.type == 4) {
if (y.childItem.useDinnerType == "1") {
can.breakfirst = y.childItem.dinnerName;
} else if (y.childItem.useDinnerType == "2") {
can.lanuch = y.childItem.dinnerName;
} else if (y.childItem.useDinnerType == "3") {
can.dinner = y.childItem.dinnerName;
}
} else if (y.type == 5) {
let obj = {
title: "自由活动",
content: y.childItem.description,
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
activy.push(obj);
} else if (y.type == 6) {
let obj = {
title: y.childItem.title,
content: y.childItem.description,
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
tips.push(obj);
}
if (y.type == 3) {
jiu2.push(y.childItem.hotelName);
useDinnerTypeBy = y.childItem.useDinnerType;
}
});
if (
can.breakfirst == "敬请自理" &&
useDinnerTypeBy.indexOf("1") != -1
) {
can.breakfirst = "酒店内享用早餐";
}
if (can.lanuch == "敬请自理" && useDinnerTypeBy.indexOf("2") != -1) {
can.lanuch = "酒店自助";
}
if (can.dinner == "敬请自理" && useDinnerTypeBy.indexOf("3") != -1) {
can.dinner = "酒店自助";
}
x.can = can;
let details = [];
x.tips = tips;
x.jiu2 = jiu2;
if (jin.length > 0) {
details = jin;
} else if (jiu.length > 0) {
details = jiu;
} else if (dadian.length > 0) {
details = dadian;
} else if (jiao.length > 0) {
if (j == this.tripList.length - 1) {
let obj = {
title: "温暖的家",
content: "感谢您参加本次行程,期待下次与您相遇",
img: "",
};
details.push(obj);
} else {
details = jiao;
}
} else if (activy.length > 0) {
details = activy;
}
x.title =
dadian.length > 0 ?
dadian[0].title :
jiao.length > 0 ?
jiao[0].title :
"集合出发";
x.details = details;
if (x.details.length == 0) {
if (j == 0) {
let obj = {
title: "集合出发",
content: "向着远方的目标出发起飞",
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
details.push(obj);
} else if (j == this.tripList.length - 1) {
let obj = {
title: "温暖的家",
content: "感谢您参加本次行程,期待下次与您相遇",
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null,
};
details.push(obj);
}
} else {
if (x.title == "集合出发") {
x.details.forEach((xc) => {
if (xc.title !== undefined) x.title = xc.title + "~";
});
if (x.title == "集合出发") {
if (j > 0 && j < tripList.length - 1) x.title = "自由活动";
} else {
x.title = x.title.substring(0, x.title.length - 1);
}
}
}
x.islast = j + 1 == this.tripList.length;
this.$set(this.tripList, j, x);
});
for (let i = this.tripList.length - 1; i >= 0; i--) {
if (i == 0) this.tripList[i].can.breakfirst = "敬请自理";
else {
this.tripList[i].can.breakfirst = this.tripList[i - 1].can.breakfirst;
if (
this.tripList[i].lineId != 5 &&
this.tripList[i].can.breakfirst == "敬请自理"
)
this.tripList[i].can.breakfirst = "酒店内享用早餐";
}
}
this.trifficList.forEach((x, index) => {
if (x.airportPickUp == 1 || x.airportPickUp == 2) {
if (x.isUseBus == 1) {
this.tripDays[index].TrifficType = "飞机+大巴";
}
}
if (x.airportPickUp == 0 && x.isUseBus == 1) {
this.tripDays[index].TrifficType = "大巴";
}
if (x.airportPickUp == 1 || x.airportPickUp == 2) {
if (x.isUseBus == 0) {
this.tripDays[index].TrifficType = "飞机";
}
}
if (x.airportPickUp == 0 || x.airportPickUp == 0) {
if (x.isUseBus == 0) {
this.tripDays[index].TrifficType = "无";
}
}
});
},
},
created() {
if (this.$route.query.TCID && this.$route.query.TCID > 0) {
this.CtObj.TCID = this.$route.query.TCID;
this.GetTrip(this.CtObj.TCID);
}
if (this.$route.query.orderID && this.$route.query.orderID > 0) {
this.CtObj.OrderId = this.$route.query.orderID;
......@@ -1619,9 +2061,9 @@
mounted() {
if (this.$route.query.id && this.$route.query.id > 0) {
this.CtObj.ID = this.$route.query.id;
}
if (this.CtObj.ID > 0 || this.CtObj.TCID > 0) {
this.GetData();
} else {
this.IsLoad = 1;
}
this.$nextTick(function () {
//滚动监听事件
......@@ -1629,4 +2071,5 @@
});
}
};
</script>
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