Commit 11442a0c authored by liudong1993's avatar liudong1993
parents 98a5b086 ab5a763b
......@@ -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 () {
//滚动监听事件
......
......@@ -2734,20 +2734,7 @@ else if (Type==2) {
tab: this.$t('objFill.djpxq')
}
});
// return
// let href
// let url
// if (this.isOnline()) {
// url = 'http://fcrmyx.oytour.com/#/'
// } else {
// url = 'http://localhost:8081/#/'
// }
// let data = [{
// path: 'customerOrder',
// OrderId: this.GetDetail.ReFinanceId,
// }]
// href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON.stringify(data)
// window.open(href);
},
GetAuth() {
var actionCode = this.$AuthCode.TeamShouZhi;
......
......@@ -1962,20 +1962,6 @@
tab: this.$t('objFill.djpxq')
}
});
// return
// let href
// let url
// if (this.isOnline()) {
// url = 'http://fcrmyx.oytour.com/#/'
// } else {
// url = 'http://localhost:8081/#/'
// }
// let data = [{
// path: 'customerOrder',
// OrderId: this.GetDetail.ReFinanceId,
// }]
// href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON.stringify(data)
// window.open(href);
},
GetAuth() {
var actionCode = this.$AuthCode.TeamShouZhi;
......
......@@ -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) => {
......
......@@ -389,7 +389,8 @@
<tr>
<td>
<el-form-item label="公司名称">
<el-select v-model="CtObj.SignType" :placeholder="$t('pub.pleaseSel')" @change="changeSignType" class="w300">
<el-select v-model="CtObj.SignType" :placeholder="$t('pub.pleaseSel')" @change="changeSignType"
class="w300">
<el-option key="0" label="四川和平国际旅行社有限公司" :value="0">
</el-option>
<el-option key="1" label="(株)ピースインターナショナル" :value="1">
......@@ -471,7 +472,8 @@
<tr>
<td>
<el-form-item label="旅游者同意选择下列第">
<el-select :placeholder="$t('pub.pleaseSel')" filterable class='w150' v-model="CtObj.carpoolOpinion">
<el-select :placeholder="$t('pub.pleaseSel')" filterable class='w150'
v-model="CtObj.carpoolOpinion">
<el-option label="A" :value='1'></el-option>
<el-option label="B" :value='2'></el-option>
<el-option label="C" :value='3'></el-option>
......@@ -1444,12 +1446,13 @@
let lineTeam = this.CtObj.productName;
let days = this.CtObj.dayNum;
let nights = this.CtObj.nightNum;
var erpUrl = this.domainManager().erpSiteUrl;
this.msgGuest.forEach(x => {
let obj = {};
if (x.checked) {
obj.mobiles = x.clientCall;
obj.Url =
`http://yx.oytour.com/#/clientConfirm?TCID=${this.msg.TCID}&orderID=${this.msg.orderID}&guestId=${x.guestId}`;
obj.Url = erpUrl +
`clientConfirm?TCID=${this.msg.TCID}&orderID=${this.msg.orderID}&guestId=${x.guestId}`;
msgObj.push(obj);
}
})
......
......@@ -11,7 +11,8 @@
<div>
<span>下单时间:</span>
<el-date-picker v-model="dateList" @change="msg.pageIndex=1,getList()" size="small" type="datetimerange"
:range-separator="$t('OrderList.zhi')" value-format="yyyy-MM-dd HH:mm:ss" :start-placeholder="$t('OrderList.star')" :end-placeholder="$t('OrderList.end')">
:range-separator="$t('OrderList.zhi')" value-format="yyyy-MM-dd HH:mm:ss"
:start-placeholder="$t('OrderList.star')" :end-placeholder="$t('OrderList.end')">
</el-date-picker>
<span style="margin-left:15px">所属平台:</span>
<el-select class="w120" @change="msg.pageIndex=1,getList()" v-model="msg.OrderSource" size="small"
......@@ -35,9 +36,10 @@
</el-option>
</el-select>
<el-input @clear="msg.pageIndex=1,getList()" @keyup.enter.native="msg.pageIndex=1,getList()" clearable
style="margin-left:15px;width:300px" class="input-with-select" :placeholder="$t('fnc.qsrneirong')" v-model="msgVal"
size="small">
<el-select class="pendSelect" @change="ChangeId" v-model="msgId" slot="prepend" :placeholder="$t('pub.pleaseSel')">
style="margin-left:15px;width:300px" class="input-with-select" :placeholder="$t('fnc.qsrneirong')"
v-model="msgVal" size="small">
<el-select class="pendSelect" @change="ChangeId" v-model="msgId" slot="prepend"
:placeholder="$t('pub.pleaseSel')">
<el-option v-for="item in option" :key="item.Id" :label="item.name" :value="item.Id">
</el-option>
</el-select>
......@@ -205,7 +207,7 @@
src="../../../assets/img/userman/edit1.png" alt="">
</span>
</div>
<div flex="cross:center main:center" >人数:x {{list.Number}}</div>
<div flex="cross:center main:center">人数:x {{list.Number}}</div>
</div>
<div style="width: 200px; display: flex;flex-direction:column;justify-content: center"
v-if="TenantId==1">
......@@ -451,7 +453,8 @@
</el-form-item>
<template v-if="fhMsg.Type==1">
<el-form-item label="快递公司" prop="ExpressId">
<el-select class="w200" size="small" v-model="fhMsg.ExpressId" filterable :placeholder="$t('pub.pleaseSel')">
<el-select class="w200" size="small" v-model="fhMsg.ExpressId" filterable
:placeholder="$t('pub.pleaseSel')">
<el-option v-for="item in ExpressList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
......@@ -498,7 +501,8 @@
<el-option v-for="item in cityList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
<el-select size="small" v-model="shMsg.District" style="width:144px" filterable :placeholder="$t('pub.pleaseSel')">
<el-select size="small" v-model="shMsg.District" style="width:144px" filterable
:placeholder="$t('pub.pleaseSel')">
<el-option v-for="item in areaList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
......@@ -1580,9 +1584,10 @@
ECOrderDetailId: list.Id
}]
}
// window.open('http://www.test.com:8081/#/ChoiceAddFinancialDocuments?Type=1&companyID='+companyID+'&orderObj='+JSON.stringify(orderObj))
window.open('http://yx.oytour.com/#/ChoiceAddFinancialDocuments?Type=1&companyID=' + companyID + '&orderObj=' +
JSON.stringify(orderObj))
var newUrl = this.domainManager().erpSiteUrl + 'ChoiceAddFinancialDocuments?Type=1&companyID=' + companyID +
'&orderObj=' +
JSON.stringify(orderObj)
window.open(newUrl)
},
goPayment(item, list) { //跳到erp付款单
let currentUser = this.getLocalStorage()
......@@ -1597,19 +1602,20 @@
ECOrderDetailId: list.Id
}]
}
// window.open('http://www.test.com:8081/#/ChoiceAddFinancialDocuments?Type=2&companyID='+companyID+'&orderObj='+JSON.stringify(orderObj))
window.open('http://yx.oytour.com/#/ChoiceAddFinancialDocuments?Type=2&companyID=' + companyID + '&orderObj=' +
JSON.stringify(orderObj))
var newUrl = this.domainManager().erpSiteUrl + 'ChoiceAddFinancialDocuments?Type=2&companyID=' + companyID +
'&orderObj=' +
JSON.stringify(orderObj)
window.open(newUrl)
},
goSF(item) { //收入详情
// window.open('http://yx.oytour.com/#/FinancialDocumentsDetail?id=' + item.FrID +
// '&Conditon=1&tab=%E5%8D%95%E6%8D%AE%E8%AF%A6%E6%83%85')
this.CommonJump('FinancialDocumentsDetail',{id:item.FrID})
this.CommonJump('FinancialDocumentsDetail', {
id: item.FrID
})
},
goZF(item) { //付款详情
// window.open('http://yx.oytour.com/#/FinancialDocumentsDetail?id=' + item.FrID +
// '&Conditon=1&tab=%E5%8D%95%E6%8D%AE%E8%AF%A6%E6%83%85')
this.CommonJump('FinancialDocumentsDetail',{id:item.FrID})
this.CommonJump('FinancialDocumentsDetail', {
id: item.FrID
})
}
},
};
......@@ -1621,10 +1627,11 @@
padding-top: 3px;
margin-left: 7px;
}
.orderList span{
.orderList span {
font-size: 13px;
font-weight: normal;
}
}
.orderList .upload-demo {
float: right;
......
......@@ -1465,6 +1465,11 @@
},
data() {
return {
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
}
},
GroupTypeVisible: false,
GroupTypeObj: {},
dialog: {
......@@ -1704,12 +1709,20 @@
pickerBeginDateBefore: {
disabledDate: time => {
if (this.queryMsg.EndGroupDate == null) {
return false;
if(this.queryMsg.StartGroupDate){
let endTime = this.TourDateRestrictions()
return time && endTime.getTime() >= time.getTime();
}else return false;
} else {
if(this.queryMsg.StartGroupDate){
let endTime = this.TourDateRestrictions()
return time && endTime.getTime() >= time.getTime();
}else{
let endTime = new Date(this.queryMsg.EndGroupDate);
return endTime.getTime() < time.getTime();
}
}
}
},
pickerBeginDateAfter: {
disabledDate: time => {
......
......@@ -11,7 +11,8 @@
<div>
<span>下单时间:</span>
<el-date-picker v-model="dateList" @change="msg.pageIndex=1,getList()" size="small" type="datetimerange"
:range-separator="$t('OrderList.zhi')" value-format="yyyy-MM-dd HH:mm:ss" :start-placeholder="$t('OrderList.star')" :end-placeholder="$t('OrderList.end')">
:range-separator="$t('OrderList.zhi')" value-format="yyyy-MM-dd HH:mm:ss"
:start-placeholder="$t('OrderList.star')" :end-placeholder="$t('OrderList.end')">
</el-date-picker>
<span style="margin-left:15px">订单来源:</span>
<el-select class="w120" @change="msg.pageIndex=1,getList()" v-model="msg.OrderSource" size="small"
......@@ -29,9 +30,10 @@
</el-select>
<el-input @clear="msg.pageIndex=1,getList()" @keyup.enter.native="msg.pageIndex=1,getList()" clearable
style="margin-left:15px;width:300px" class="input-with-select" :placeholder="$t('fnc.qsrneirong')" v-model="msgVal"
size="small">
<el-select class="pendSelect" @change="ChangeId" v-model="msgId" slot="prepend" :placeholder="$t('pub.pleaseSel')">
style="margin-left:15px;width:300px" class="input-with-select" :placeholder="$t('fnc.qsrneirong')"
v-model="msgVal" size="small">
<el-select class="pendSelect" @change="ChangeId" v-model="msgId" slot="prepend"
:placeholder="$t('pub.pleaseSel')">
<el-option v-for="item in option" :key="item.Id" :label="item.name" :value="item.Id">
</el-option>
</el-select>
......@@ -106,8 +108,10 @@
</div>
<div flex="dir:left wrap:wrap" class="app-order-offline">
<el-tag v-if="item.PaymentTime==''" style="margin-left:5px" size="small" type="warning">未付款</el-tag>
<el-tag v-if="item.OrderStatus== 2 " style="margin-left:5px" size="small" type="success">待确认</el-tag>
<el-tag v-if="item.OrderStatus== 5 " style="margin-left:5px" size="small" type="success">待处理</el-tag>
<el-tag v-if="item.OrderStatus== 2 " style="margin-left:5px" size="small" type="success">待确认
</el-tag>
<el-tag v-if="item.OrderStatus== 5 " style="margin-left:5px" size="small" type="success">待处理
</el-tag>
<el-tag
v-if="item.PaymentTime!='' && item.DeliveryTime=='' && item.ReceivingTime=='' && item.FinishTime==''"
style="margin-left:5px" size="small" type="warning">已付款</el-tag>
......@@ -135,7 +139,7 @@
<div class="app-order-body">
<div class="goods-item" style="width: 60%;">
<div v-for="(list,index2) in getshangplist(item)" :key="index2" class="goods">
<div >
<div>
<img :src="list.HotelImage" v-if='item.OrderType == 1' class="goods-image" />
<img :src="list.DiningImg" v-if='item.OrderType == 2' class="goods-image" />
<img :src="list.TicketImg" v-if='item.OrderType == 3' class="goods-image" />
......@@ -143,7 +147,8 @@
<div class="goods-info">
<div class="goods-name">
<div class="app-ellipsis">
<div class="vue-line-clamp" style="word-break: break-all; -webkit-line-clamp: 2;font-size: 15px;font-weight: 500;">
<div class="vue-line-clamp"
style="word-break: break-all; -webkit-line-clamp: 2;font-size: 15px;font-weight: 500;">
<span v-if='item.OrderType == 1'>{{list.HotelName}}</span>
<span v-if='item.OrderType == 2'>{{list.MealName}}</span>
<span v-if='item.OrderType == 3'>{{list.TicketName}}</span>
......@@ -153,9 +158,10 @@
</div>
<div style="margin-bottom: 5px;">
<span style="margin-right: 10px;" v-if='item.OrderType == 1'>房间数:x{{list.RoomNumber}}</span>
<span style="margin-right: 10px;" v-if='item.OrderType == 2 || item.OrderType == 3'>数量:x{{list.PeopleNumber}}</span>
<span style="margin-right: 10px;"
v-if='item.OrderType == 2 || item.OrderType == 3'>数量:x{{list.PeopleNumber}}</span>
</div>
<div style="margin-bottom: 5px;" > <span>单价:¥{{list.Unit_Price}}</span></div>
<div style="margin-bottom: 5px;"> <span>单价:¥{{list.Unit_Price}}</span></div>
<div style="margin-bottom: 5px;" v-if='item.OrderType == 1'>
<span>
入店时间:{{list.StartDate}} - {{list.EndDate}}
......@@ -172,17 +178,21 @@
</div>
<div style="margin-bottom: 5px;" v-if='item.OrderType == 4'> </div>
<div style="margin-bottom: 5px;">
<span style="margin-right: 10px;" v-if='item.OrderType == 1'>到店时间:{{list.ArrivalTime}} </span>
<span style="margin-right: 10px;" v-if='item.OrderType == 1'>到店时间:{{list.ArrivalTime}}
</span>
<span style="margin-right: 10px;" v-if='item.OrderType == 2'>就餐时间:{{list.Date}} </span>
<span style="margin-right: 10px;" v-if='item.OrderType == 3'>入园时间:{{list.Date}} </span>
<span style="margin-right: 10px;" v-if='item.OrderType == 4'>出行时间:{{list.Date}} {{list.DepartureTime}} </span>
<span style="margin-right: 10px;" v-if='item.OrderType == 4'>出行时间:{{list.Date}}
{{list.DepartureTime}} </span>
</div>
</div>
<div flex="dir:left box:mean" style="width: 350px;display: flex;align-items: center;justify-content: center;">
<div flex="dir:left box:mean"
style="width: 350px;display: flex;align-items: center;justify-content: center;">
<div flex="cross:center main:center"
style="display: flex;flex-direction: column;align-items: flex-start;width: 55%;">
<span style="cursor:pointer">小计:¥{{list.Final_Price}} <span style="color:#f56c6c" v-if='item.Refund && item.Refund>0'>(实退:¥{{item.Refund}})</span>
<span style="cursor:pointer">小计:¥{{list.Final_Price}} <span style="color:#f56c6c"
v-if='item.Refund && item.Refund>0'>(实退:¥{{item.Refund}})</span>
<!-- <img v-if="item.PaymentTime==''" @click="EditPrice(item,1,list)"
src="../../../assets/img/userman/edit1.png" alt=""> -->
</span>
......@@ -190,8 +200,11 @@
<img v-if="item.OrderStatus!==4" @click="costBtn_t(list,item)"
src="../../../assets/img/userman/edit1.png" alt="">
</span>
<span style="cursor:pointer" v-if='item.OrderType == 4 && list.PeopleNumber && list.PeopleNumber>0'>成人:{{ list.PeopleNumber}}</span>
<span style="cursor:pointer" v-if='item.OrderType == 4 && list.ChildNumber && list.ChildNumber>0'>儿童:{{ list.ChildNumber}}</span>
<span style="cursor:pointer"
v-if='item.OrderType == 4 && list.PeopleNumber && list.PeopleNumber>0'>成人:{{ list.PeopleNumber}}</span>
<span style="cursor:pointer"
v-if='item.OrderType == 4 && list.ChildNumber && list.ChildNumber>0'>儿童:{{ list.ChildNumber}}
</span>
</div>
</div>
......@@ -303,7 +316,9 @@
<div class="card-footer">
<div>
<div flex="dir:left">
<div class="address-box">联系人: {{item.Consignee}} <span style='margin:0 5px'></span> 电话:{{item.Mobile}} <span style="margin-left:15px" v-if="item.CancelRemark && item.CancelRemark!=''">取消备注:{{item.CancelRemark}}</span> </div>
<div class="address-box">联系人: {{item.Consignee}} <span style='margin:0 5px'></span>
电话:{{item.Mobile}} <span style="margin-left:15px"
v-if="item.CancelRemark && item.CancelRemark!=''">取消备注:{{item.CancelRemark}}</span> </div>
<!-- <button v-if="item.OrderStatus==2" @click="ExitshAdress(item)" type="button"
class="el-button el-button--text is-circle"><i class="el-icon-edit"></i></button> -->
</div>
......@@ -400,7 +415,8 @@
<span>赞羊小计:¥{{list.SmallShopsCostPrice}}</span>
</div>
</div>
<div flex="dir:left box:mean" style="width: 350px;display: flex;align-items: center;justify-content: center;">
<div flex="dir:left box:mean"
style="width: 350px;display: flex;align-items: center;justify-content: center;">
<div flex="cross:center main:center"
style="display: flex;flex-direction: column;align-items: flex-start;width: 55%;">
<span style="cursor:pointer">小计:¥{{list.Final_Price}}
......@@ -420,7 +436,7 @@
src="../../../assets/img/userman/edit1.png" alt="">
</span> -->
</div>
<div flex="cross:center main:center" >人数:x {{list.Number}}</div>
<div flex="cross:center main:center">人数:x {{list.Number}}</div>
</div>
<div style="width: 200px; display: flex;flex-direction:column;justify-content: center"
v-if="TenantId==1">
......@@ -450,8 +466,7 @@
</div>
</div>
</div>
<div class="billStyle"
v-if="(list.SFinanceList.length>0|| list.ZFinanceList.length >0) ">
<div class="billStyle" v-if="(list.SFinanceList.length>0|| list.ZFinanceList.length >0) ">
<div class="billStyle_item" style="border-right: 1px solid #EBEEF5">
收入单据:
<span v-for="(item,index2) in list.SFinanceList" :key="index2" @click="goSF(item)">
......@@ -570,7 +585,8 @@
<div class="card-footer">
<div>
<div flex="dir:left">
<div class="address-box">联系人: {{item.Consignee}} <span style='margin:0 5px'></span> 电话: {{item.Mobile}}
<div class="address-box">联系人: {{item.Consignee}} <span style='margin:0 5px'></span> 电话:
{{item.Mobile}}
出发地:{{item.ShoppingAddress}}
{{item.SDGoodsList[0].CarType!=5 ?('目的地:'+item.DestinationAddress):''}}
</div>
......@@ -624,7 +640,8 @@
<el-input type="text" size="small" v-model="pendMgs.RefundMoney" placeholder="退款金额"></el-input>
</div>
<el-input v-if="pendMgs.Type==2" type="textarea" size="small" v-model="pendMgs.Remark" placeholder="拒绝理由"></el-input>
<el-input v-if="pendMgs.Type==2" type="textarea" size="small" v-model="pendMgs.Remark" placeholder="拒绝理由">
</el-input>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="pendD = false">{{$t('pub.cancelBtn')}}</el-button>
<el-button size="small" type="primary" @click="pendingForm()">确 定</el-button>
......@@ -667,7 +684,8 @@
<span style="font-size:20px">提示</span>
</p>
<p class="center" style="padding: 10px 15px;">{{hstips}}</p>
<el-input style="margin-left: 10px; width: 400px;" size="small" type="textarea" v-if='hszMsg.Type == 1' v-model="hszMsg.Remark"></el-input>
<el-input style="margin-left: 10px; width: 400px;" size="small" type="textarea" v-if='hszMsg.Type == 1'
v-model="hszMsg.Remark"></el-input>
<div style="text-align:center;margin-top:20px">
......@@ -751,7 +769,7 @@
<script>
export default {
name: "orderList",
components:{
components: {
},
data() {
......@@ -765,7 +783,7 @@
priceDig: false,
costDig: false, //商品、运费成本的修改
costDig2: false, //商品、运费成本的修改
costDig_t:false,
costDig_t: false,
cosType: 1,
costMsg: {
Id: 0,
......@@ -861,7 +879,7 @@
msg: {
pageIndex: 1,
pageSize: 15,
OrderSource:0,
OrderSource: 0,
OrderType: 0,
OrderId: 0,
StartTime: '',
......@@ -936,7 +954,7 @@
CommonId: 0, //公用id 给弹窗用
TenantId: 0,
cost_tMSg:{},//成本管理
cost_tMSg: {}, //成本管理
}
},
created() {
......@@ -1077,7 +1095,7 @@
this.pendMgs.Type = type;
this.pendMgs.Remark = '';
this.pendMgs.RefundMoney = item.PreferPrice;
this.pendMgs.OrderType = item.OrderType;//来判断的否是城际专车 是的话用之前的接口
this.pendMgs.OrderType = item.OrderType; //来判断的否是城际专车 是的话用之前的接口
},
......@@ -1085,7 +1103,7 @@
pendingForm() {
this.loading = true;
let url = '/api/DmcOrder/SetDmcOrderCancelAudit'
if(this.pendMgs.OrderType==5){
if (this.pendMgs.OrderType == 5) {
url = '/api/order/SetOrderApplyForCancelAudit'
}
this.lxymallapipost(url, this.pendMgs,
......@@ -1195,7 +1213,7 @@
this.hszMsg = {
OrderId: item.OrderId,
Type: num,
Remark:Remark
Remark: Remark
};
this.hszDig = true;
},
......@@ -1476,7 +1494,7 @@
);
});
},
OrderExit3(item){
OrderExit3(item) {
let that = this;
let text = '';
if (item.OrderStatus == 1) {
......@@ -1609,14 +1627,14 @@
}
})
},
costBtn_t(list,item){
this.cost_tMSg.OrderDetailId=list.Id;
this.cost_tMSg.OrderType=item.OrderType;
this.cost_tMSg.CostMoney=list.CostMoney;
costBtn_t(list, item) {
this.cost_tMSg.OrderDetailId = list.Id;
this.cost_tMSg.OrderType = item.OrderType;
this.cost_tMSg.CostMoney = list.CostMoney;
this.costDig_t = true
},
costForm_t(){//成本修改 新的
if(this.cost_tMSg.CostMoney==''){
costForm_t() { //成本修改 新的
if (this.cost_tMSg.CostMoney == '') {
this.Info('请输入修改成本金额')
return
}
......@@ -1762,19 +1780,20 @@
ECOrderDetailId: list.Id
}]
}
// window.open('http://www.test.com:8081/#/ChoiceAddFinancialDocuments?Type=1&companyID='+companyID+'&orderObj='+JSON.stringify(orderObj))
window.open('http://yx.oytour.com/#/ChoiceAddFinancialDocuments?Type=1&companyID=' + companyID + '&orderObj=' +
JSON.stringify(orderObj))
var newUrl = this.domainManager().erpSiteUrl + 'ChoiceAddFinancialDocuments?Type=1&companyID=' + companyID +
'&orderObj=' +
JSON.stringify(orderObj)
window.open(newUrl);
},
getshangplist(item){
getshangplist(item) {
let List = [];
if(item.OrderType==1){
if (item.OrderType == 1) {
List = item.HotelList
}else if(item.OrderType==2){
} else if (item.OrderType == 2) {
List = item.DiningList
}else if(item.OrderType==3){
} else if (item.OrderType == 3) {
List = item.TicketList
}else if(item.OrderType==4){
} else if (item.OrderType == 4) {
List = item.CarList
}
return List
......@@ -1792,16 +1811,17 @@
ECOrderDetailId: list.Id
}]
}
// window.open('http://www.test.com:8081/#/ChoiceAddFinancialDocuments?Type=2&companyID='+companyID+'&orderObj='+JSON.stringify(orderObj))
window.open('http://yx.oytour.com/#/ChoiceAddFinancialDocuments?Type=2&companyID=' + companyID + '&orderObj=' +
JSON.stringify(orderObj))
var newUrl = this.domainManager().erpSiteUrl + 'ChoiceAddFinancialDocuments?Type=2&companyID=' + companyID +
'&orderObj=' +
JSON.stringify(orderObj)
window.open(newUrl)
},
goSF(item) { //收入详情
this.$router.push({
name: 'FinancialDocumentsDetail',
query: {
id: item.FrID,
blank:'y'
blank: 'y'
}
});
......@@ -1812,18 +1832,18 @@
name: 'FinancialDocumentsDetail',
query: {
id: item.FrID,
blank:'y'
blank: 'y'
}
});
},
goCommonJump(url,id){
goCommonJump(url, id) {
this.$router.push({
name: url,
query: {
OrderId: id,
blank:'y'
blank: 'y'
}
});
......@@ -2110,12 +2130,15 @@
border-radius: 2px;
margin-right: 4px;
}
.vue-line-clamp span{
font-size:16px;font-weight:bold
.vue-line-clamp span {
font-size: 16px;
font-weight: bold
}
.orderList span{
.orderList span {
font-size: 13px;
font-weight: normal;
}
}
</style>
......@@ -2177,16 +2177,19 @@
testApi() {
var postMsg = {};
var cmd = "";
cmd = "ppt_trip_DeleteTripMain";
cmd = "";
postMsg = {
MainId: 1,
}
if (cmd != '') {
this.apipost(
cmd, postMsg,
res => {
console.log("testApi", res);
}
);
}
},
//测试方法
testEmp() {
......@@ -2394,16 +2397,8 @@
},
LogSetReadStatus(s) {
if (s.Type == 7) {
let url = "";
if (!this.isOnline()) {
url = "http://testerp.oytour.com:8081/#/";
} else {
url = "http://yx.oytour.com/#/";
}
let url = this.domainManager().erpSiteUrl;
let path = url + s.Link;
let routeData = this.$router.resolve({
name: path
})
window.open(path, '_blank')
} else {
this.apipost(
......
......@@ -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>
......@@ -118,6 +118,7 @@ export default {
let mallUrl = ""; //商城API
let lxymallUrl = ''; //国内游api
let crmUrl = ""; //crm API
let erpSiteUrl = ""; //ERP站点
let locationName = window.location.hostname;
let isOnline = 0; //0-本地测试,1-线上
let ocrUrl = "http://192.168.5.46:8888";
......@@ -130,12 +131,14 @@ export default {
mallUrl = "http://192.168.5.214:8200";
lxymallUrl = "http://192.168.20.13:8088";
crmUrl = "http://192.168.5.46:5003"
erpSiteUrl = "http://localhost:8080/#/";
if (locationName.indexOf('testerp.oytour') !== -1) {
domainUrl = "http://testapi.oytour.com";
mallUrl = "https://mallapi.oytour.com";
lxymallUrl = "https://erpmallapi.oytour.com";
crmUrl = "http://testcrm.oytour.com";
ocrUrl = "http://ocr.oytour.com";
erpSiteUrl = "http://admin.oytour.com/#/";
isOnline = 1;
} else if (locationName.indexOf('ys.oytour') !== -1) {
domainUrl = "http://reborn.oytour.com";
......@@ -143,6 +146,7 @@ export default {
lxymallUrl = "https://erpmallapi.oytour.com";
crmUrl = "http://crm.oytour.com";
ocrUrl = "http://ocr.oytour.com";
erpSiteUrl = "http://admin.oytour.com/#/";
isOnline = 1;
} else if (locationName.indexOf('oytour') !== -1) {
domainUrl = "http://reborn.oytour.com";
......@@ -150,13 +154,19 @@ export default {
lxymallUrl = "https://erpmallapi.oytour.com";
crmUrl = "http://crm.oytour.com";
ocrUrl = "http://ocr.oytour.com";
erpSiteUrl = "http://admin.oytour.com/#/";
isOnline = 1;
}
var userInfo = this.getLocalStorage();
if (userInfo && userInfo.ERPUrl && userInfo.ERPUrl != '') {
erpSiteUrl = userInfo.ERPUrl;
}
var obj = {
IsOnline: isOnline, //0-本地,1-线上
//主地址
DomainUrl: domainUrl,
ocrUrl: ocrUrl, //行程下载地址
erpSiteUrl: erpSiteUrl, //ERP站点地址
//常用提交数据URL
PostUrl: domainUrl + "/api/common/post",
//上传文件URL
......
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