<style> @import "../../assets/css/trip/index.css"; </style> <template> <div class="trip-box-commonTeam" v-loading="loading"> <div class="item-title"> <span class="t">{{tripList.length}}{{$t('salesModule.DaysTrip')}}</span> <span> <small class="s"></small> </span> <span>Scheduling</span> </div> <div class="trip-block-commonTeam" v-for="(item,i) in tripList" :key="i"> <div class="trip-title"> <div> <p class="day">{{$t('tips.di')}}<span v-if='item.dayNum<10'>0</span>{{item.dayNum}}{{$t('hotel.hotel_day')}} </p> <template v-if="startDate&&startDate!=''"> <p>{{GetDayStr(startDate,item.dayNum-1)}}</p> </template> </div> <div class="desc" v-html="item.title"></div> </div> <oneday v-if="item.details && item.details.length==1" :day='item' :isDirect="isDirect"></oneday> <twoday v-if="item.details && item.details.length==2" :day='item' :isDirect="isDirect"></twoday> <threeday v-if="item.details && item.details.length==3" :day='item' :isDirect="isDirect"></threeday> <fourday v-if="item.details && item.details.length==4" :day='item' :isDirect="isDirect"></fourday> <fiveday v-if="item.details && item.details.length>=5" :day='item' :isDirect="isDirect"></fiveday> </div> </div> </template> <script> import oneday from "../commonPage/TravelTripPreview/oneday"; import twoday from "../commonPage/TravelTripPreview/twoday"; import threeday from "../commonPage/TravelTripPreview/threeday"; import fourday from "../commonPage/TravelTripPreview/fourday"; import fiveday from "../commonPage/TravelTripPreview/fiveday"; export default { props: ["subConfig"], data() { return { tripList: [], loading: false, startDate: "", isDirect: 1, //是否是直采 0:否,1:是 }; }, components: { oneday, twoday, threeday, fourday, fiveday }, mounted() {}, methods: { GetDayStr(dateStr, dayNum) { return this.$commonUtils.AddDay(dateStr, dayNum); }, GetTrip(id, TCID) { this.tripList = []; this.startDate = ''; var nTCID = 0; if (TCID) { nTCID = TCID; } var msg = { configId: id, tcid: nTCID, isClick: 1 //不算统计 }; if (id !== undefined) { //根据ID 获取行程内容 this.loading = true; this.apipost( "b2b_get_GetB2BTravelInfoNoDes", msg, res => { this.loading = false; 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.isDirect = res.data.data.isDirect; this.tripList = res.data.data.dayList; this.init(); } }, 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(); } }, setDate: function (j) { let stDate = ""; if (this.priceList && this.priceList.length > 0) { stDate = this.priceList[0].startDate; } if (j === 0) { return stDate } else { if (stDate) { let d = new Date(stDate) d = d.getTime(d); let add = d + ((24 * 60 * 60 * 1000) * j) let date = new Date(add); //时间戳为10位需*1000,时间戳为13位的话不需乘1000 let Y = date.getFullYear() + '-'; let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; let D = date.getDate() < 10 ? ('0' + date.getDate()) + ' ' : date.getDate() + ' '; return Y + M + D; } else { return ""; } } }, 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, url: '' } 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 += '<i class="iconfont icon-feiji"></i>' } else if (z.arrivalType == 2) { title += '<i class="iconfont icon-bus"></i>' } else if (z.arrivalType == 3) { title += '<i class="iconfont icon-icon31"></i>' } else { title += '<i class="iconfont icon-gaotiedongche"></i>' } if (i + 1 == y.childItem.subTraffic.length) { title += z.arrivalCityName } }) let obj = { title: title, content: y.childItem.description, img: '', ticketName: '', playTimeHour: null, playTimeMinutes: null, url: '' } 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.playTimeMinutes, scenicJson: y.childItem.scenicJson, url: y.childItem.url } jin.push(obj) } else if (y.type == 3 && y.childItem.hotelName != '' && y.childItem.imaArray.length > 0) { //酒店 let obj = { title: y.childItem.hotelName, newTitle: y.childItem.newHotelName, status: y.childItem.status, content: y.childItem.description, img: y.childItem.imaArray[0].url, ticketName: '', playTimeHour: null, playTimeMinutes: null, url: y.childItem.url } 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, url: '' } activy.push(obj) } else if (y.type == 6) { let obj = { title: y.childItem.title, content: y.childItem.description, img: '', ticketName: '', playTimeHour: null, playTimeMinutes: null, url: '' } tips.push(obj) } if (y.type == 3) { jiu2.push({ name: y.childItem.hotelName, url: y.childItem.url, newTitle: y.childItem.newHotelName, status: y.childItem.status, }); useDinnerTypeBy = y.childItem.useDinnerType } }) if (can.breakfirst == '敬请自理' && useDinnerTypeBy.indexOf('1') != -1) { can.breakfirst = '酒店内享用早餐' } else if (can.breakfirst == '') { can.breakfirst = '方便游玩敬请自理' } if (can.lanuch == '敬请自理' && useDinnerTypeBy.indexOf('2') != -1) { can.lanuch = '酒店自助' } else if (can.lanuch == '') { can.lanuch = '方便游玩敬请自理' } if (can.dinner == '敬请自理' && useDinnerTypeBy.indexOf('3') != -1) { can.dinner = '酒店自助' } else if (can.dinner == '') { can.dinner = '方便游玩敬请自理' } x.can = can let details = []; x.tips = tips x.jiu2 = jiu2 if (jin.length > 0) { details = jin } 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 && dadian[0].title != '' ? 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) x.dateTime = this.setDate(j); }) } } }; </script>