<style> @import "../../../assets/css/newTravelManager.css"; </style> <template> <div class="clearfix"> <div class="TravelLeftMenu"> <div class="TravelTopTitle">页面导航</div> <div class="TravelNavList" :class="{'TravelCked':ckedNav==1}" @click.prevent="custormAnchor('firstAnchor',1)" >基础设置</div> <div class="TravelLine"></div> <div class="TravelNavList" :class="{'TravelCked':ckedNav==2}" @click.prevent="custormAnchor('sccondAnchor',2)" >团期设置</div> <div class="TravelLine"></div> <div class="TravelNavList" :class="{'TravelCked':ckedNav==4}" @click.prevent="custormAnchor('fourthAnchor',4)" >产品特点</div> <div class="TravelLine"></div> <div class="TravelNavList" :class="{'TravelCked':ckedNav==5}" @click.prevent="custormAnchor('fiveAnchor',5)" >线路行程</div> <div class="TravelLine"></div> <div class="TravelNavList" :class="{'TravelCked':ckedNav==6}" @click.prevent="custormAnchor('sixAnchor',6)" >补充信息</div> <div class="TravelLine"></div> </div> <div class="rightTravelInfo"> <TravelConfig ref="TravelConfig" id="firstAnchor" @headCallBack="getConfig" :PostConfig="PostConfig" v-loading="PostConfig.loading" :LineList="LineList" ></TravelConfig> <TravelPrice ref="TravelPrice" id="sccondAnchor" @headCallBack="getPrice" :priceList="PriceList" :priceIsDirect="PostConfig.PriceIsDirect" :OfferList="OfferList" :PostConfig="PostConfig" ></TravelPrice> <TravelFeature ref="TravelFeature" id="fourthAnchor" @featureCallBack="getFeature" :FeatureData="FeatureData" ></TravelFeature> <!-- <newFeature :data='FeatureData' v-if='FeatureData.ID!=0'></newFeature> --> <TravelDaysTrip ref="TravelDaysTrip" id="fiveAnchor" @headCallBack="getDaysTrip" :subArray="NoticeParameters" :subConfig="journeyList" :isOpenGroup="true" :IsDirect="PostConfig.IsDirect" v-bind:AllCityList="AllCityList" v-bind:StartCity="StartCity" :UseTypeArray="UseTypeArray" :AirPickUp="AirPickUp" :AirSend="AirSend" ></TravelDaysTrip> <TravelNotice ref="TravelNotice" id="sixAnchor" @headCallBack="getNotice" :subArray="NoticeParameters" :NoticeData="NoticeData" v-bind:ShopList="ShopList" v-bind:SelfpayingList="SelfpayingList" v-bind:AllCityList="AllCityList" v-bind:CountryID="PostConfig.CountryID" ></TravelNotice> <div class="btnFixedDiv"> <div class="toTop" @click="backTop"> <i class="iconfont icon-huidaodingbu"></i> </div> <div class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="submitForm()">{{submitText}}</div> <div class="DTSaveBtn" @click="goUrl('TravelControlList')">返回</div> <div class="DTSaveBtn" @click="getJourney()">预览</div> </div> </div> <el-dialog custom-class="ComTeamPlan_info_box" :title="tripTitle" :visible.sync="outerVisible" center > <commonTeamInfo :subConfig="journeyList" ref="comDialog"></commonTeamInfo> </el-dialog> </div> </template> <script> import TravelConfig from "../TravelGroupControl/TravelConfig.vue"; import TravelPrice from "../TravelGroupControl/TravelPrice.vue"; import TravelFeature from "../TravelGroupControl/TravelFeature"; import TravelDaysTrip from "../travelLineTrip/TravelDaysTrip_Direct"; import TravelNotice from "../TravelGroupControl/TravelNotice"; import commonTeamInfo from "../../commonPage/commonTeamInfo.vue"; import newFeature from './travelFeature/index'; export default { data() { return { ConfigId: 0, //地址栏查询参数 tripTitle: "", outerVisible: false, submitText: "提交", NoticeParameters: { ConfigId: "0", LineID: "0", //线路 LineteamId: "0", //系列 CountryID: "", //国家 IsDirect: 0 //是否直采 }, //行程 FeatureData: { ID: 0, ConfigId: 0, FeatureType: 3, FeatureImg: "", FeatureContent: "", //自定义内容 FeatureHtml: "", //行程特色(html) FeatureHtmlImage: "", //行程特色(image) FeatureHtmlJson: "", //行程特色(Json数据) fileList: [], Title: "", Subtitle: "", LineName: "", DayList: [] }, //补充信息 NoticeData: { FeeInclude: "", FeeNonInclude: "", ImportantTip: "", WarmTip: "", B2BRemark: "", ShopRemark: "", VisaRemark: "" }, PostConfig: { ID: 0, StartCityId: 0, loading: true, LineId: 0, LineteamId: 0, Title: "", FSeat: "", CSeat: "", YSeat: "", //最低成团人数 LowNum: "", //OP备注 OpRemark: "", //产品经理备注 ProductRecommend: "", //选择的系列的国家编号 CountryID: "", RemoveChild: [], //移除的子项 RemoveImg: [], //移除的图片 PriceList: [], IsDirect: 0, //是否直采(0-否-1-是) PriceIsDirect: 0, //是否直采报价(1-否-2-是) fileList: [], PDFAlias: "", LtName: "", IsB2B: 0, IsB2C: 0, IsOrder: 0, IsSubstitution: 0, CreateBy:0, }, //配置信息 PostPrice: "", //报价信息 PostFeature: "", //行程特色信息 PostNotice: "", //行程特色其他内容 PostDaysTrip: "", //每天的行程 PriceList: [], //线路行程 journeyList: { DayNum: "", //天数 NightNum: "", //晚上 ReturnArriveCityId: 0, //返回抵达城市 //交通 TrafficList: [], //景点 ScenicList: [], //住宿 HotelList: [], //餐饮 DinnerList: [], //自由活动 FreedomList: [], //温馨提示 WarmTipList: [], RemoveChild: [], //移除的子项 RemoveImg: [], //移除的图片 //线路行程天数 DayList: [] }, //购物店说明 ShopList: [], //自费说明 SelfpayingList: [], //防止重复提交 isSubmit: true, ckedNav: 1, //所有的城市数据 AllCityList: [], //线路 LineList: [], //报价单信息 OfferList: [], OpenState: 2, //开团状态 1:已开团,2:未开团 StartCity: [], //出发城市集合城市 UseTypeArray: [], //用车类型 AirPickUp: 0, //接机 AirSend: 0 //送机 }; }, components: { TravelConfig: TravelConfig, TravelPrice: TravelPrice, //TravelFlightList:TravelFlightList, TravelFeature: TravelFeature, TravelDaysTrip: TravelDaysTrip, TravelNotice: TravelNotice, commonTeamInfo: commonTeamInfo, newFeature }, methods: { /*获取组件配置信息*/ getConfig(configObj) { this.PostConfig = configObj; this.NoticeParameters.LineID = this.PostConfig.LineId; this.NoticeParameters.LineteamId = this.PostConfig.LineteamId; this.NoticeParameters.CountryID = this.PostConfig.CountryID; this.NoticeParameters.IsDirect = this.PostConfig.IsDirect; }, /*获取组件报价信息*/ getPrice(priceObj) { priceObj.forEach(objItem => { var SaleBranchId = ""; if (objItem.SaleBranchIdArray.length > 0) { objItem.SaleBranchIdArray.forEach(subItem => { SaleBranchId += subItem + ","; }); } if (SaleBranchId != "") { var str = SaleBranchId.substr(0, SaleBranchId.length - 1); objItem.SaleBranchId = str; } }); this.PostPrice = priceObj; }, /*获取行程特色内容对象*/ getFeature(featureObj) { this.PostFeature = featureObj; }, /*获取行程特色其他内容*/ getNotice(noticeObj) { this.PostNotice = noticeObj; }, /*获取每天的行程*/ getDaysTrip(dayTripObj) { this.PostDaysTrip = dayTripObj; }, /*保存数据*/ SaveData() { this.submitText = "保存中"; //团队配置 var postData = this.PostConfig; //配置编号 postData.ID = this.ConfigId; //团期报价 postData.PriceList = this.PostPrice; postData.Feature = this.PostFeature; postData.Feature.FeeInclude = this.PostNotice.FeeInclude; postData.Feature.FeeNonInclude = this.PostNotice.FeeNonInclude; postData.Feature.ImportantTip = this.PostNotice.ImportantTip; postData.Feature.WarmTip = this.PostNotice.WarmTip; postData.Feature.B2BRemark = this.PostNotice.B2BRemark; postData.Feature.ShopRemark = this.PostNotice.ShopRemark; postData.Feature.VisaRemark = this.PostNotice.VisaRemark; postData.DayNum = this.PostDaysTrip.DayNum; postData.NightNum = this.PostDaysTrip.NightNum; postData.ReturnArriveCityId = this.PostDaysTrip.ReturnArriveCityId; postData.DinnerList = this.PostDaysTrip.DinnerList; postData.FreedomList = this.PostDaysTrip.FreedomList; postData.HotelList = this.PostDaysTrip.HotelList; postData.ScenicList = this.PostDaysTrip.ScenicList; postData.TrafficList = this.PostDaysTrip.TrafficList; postData.WarmTipList = this.PostDaysTrip.WarmTipList; postData.RemoveImg = this.PostDaysTrip.RemoveImg; if ( postData.TrafficList != null && postData.TrafficList.length > 0 && postData.TrafficList[0].SubTraffic != null && postData.TrafficList[0].SubTraffic.length > 0 ) { postData["ArriveCityId"] = postData.TrafficList[0].SubTraffic[0].ArrivalCityId; } if (postData.OpenState == 1) { postData["AfterOpenModify"] = true; } this.apipost( "travel_post_SetConfig", postData, res => { this.PostConfig.loading = false; if (res.data.resultCode == 1) { this.Success("操作成功!"); this.$router.push({ path: "TravelControlList", query: { cache: true } }); } else if (res.data.resultCode == 10009) { //表单重复提交不处理 } else { this.Error(res.data.message); this.isSubmit = true; this.submitText = "提交"; this.$refs.TravelFeature.del_show = true; } }, err => {} ); }, //初始化幻灯片 initFileList() { for (var i = 0; i < 5; i++) { var fileObj = this.$commonUtils.FileObject(); this.PostConfig.fileList.push(fileObj); this.FeatureData.fileList.push(fileObj); } }, initConfig(configId) { if (configId > 0) { let msg = { configId: configId }; this.PostConfig.loading = true; this.apipost( "travel_get_GetOpenTravelInfo", msg, res => { this.PostConfig.loading = false; if (res.data.resultCode == 1) { var tempData = res.data.data; if (tempData.Feature != null) { this.FeatureData.ID = tempData.Feature.ID; this.FeatureData.ConfigId = tempData.Feature.ConfigId; this.FeatureData.FeatureType = tempData.Feature.FeatureType; this.FeatureData.FeatureImg = tempData.Feature.FeatureImg; this.FeatureData.FeatureContent = tempData.Feature.FeatureContent; //图片列表 this.FeatureData.fileList = tempData.Feature.FeatureImgList; this.FeatureData.FeatureHtmlJson=tempData.Feature.FeatureHtmlJson && tempData.Feature.FeatureHtmlJson!=''?JSON.parse(tempData.Feature.FeatureHtmlJson):null this.NoticeData.FeeInclude = tempData.Feature.FeeInclude; this.NoticeData.FeeNonInclude = tempData.Feature.FeeNonInclude; this.NoticeData.ImportantTip = tempData.Feature.ImportantTip; this.NoticeData.WarmTip = tempData.Feature.WarmTip; this.NoticeData.B2BRemark = tempData.Feature.B2BRemark; this.NoticeData.ShopRemark = tempData.Feature.ShopRemark; this.NoticeData.VisaRemark = tempData.Feature.VisaRemark; } if (tempData.PDFAlias !== null && tempData.PDFAlias !== "") { this.FeatureData.Title = tempData.PDFAlias; } else { this.FeatureData.Title = tempData.Title; } this.FeatureData.Subtitle = tempData.LtName; this.FeatureData.LineName = tempData.LineName; this.FeatureData.DayList = tempData.DayList; //this.$refs.TravelFeature.init(); this.PostConfig.ID = tempData.ID; this.PostConfig.StartCityId = tempData.StartCityId; this.PostConfig.LineId = tempData.LineId; this.PostConfig.LineteamId = tempData.LineteamId; this.PostConfig.CountryID = tempData.CountryID; this.PostConfig.ImgCover = tempData.ImgCover; this.PostConfig.LtName = tempData.LtName; this.PostConfig.CreateBy=tempData.CreateBy; if (tempData.ImgCover != "") { if (tempData.ImgCoverList.length > 0) { this.PostConfig.fileList = tempData.ImgCoverList; } } this.PostConfig.Title = tempData.Title; this.PostConfig.FSeat = tempData.FSeat; this.PostConfig.CSeat = tempData.CSeat; this.PostConfig.YSeat = tempData.YSeat; this.PostConfig.IsB2B = tempData.IsB2B; this.PostConfig.IsB2C = tempData.IsB2C; this.PostConfig.IsOrder = tempData.IsOrder; this.PostConfig.IsSubstitution = tempData.IsSubstitution; this.PostConfig.LowNum = tempData.LowNum; this.PostConfig.OpRemark = tempData.OpRemark; this.PostConfig.ProductRecommend = tempData.ProductRecommend; this.PostConfig.IsDirect = tempData.IsDirect; this.PostConfig.PriceIsDirect = tempData.PriceIsDirect; this.journeyList.DayNum = tempData.DayNum; this.journeyList.NightNum = tempData.NightNum; this.journeyList.ReturnArriveCityId = tempData.ReturnArriveCityId; this.journeyList.StartCityId = tempData.StartCityId; this.journeyList.DayList = tempData.DayList; if (tempData.PriceList != null) { this.PriceList = tempData.PriceList; } if (tempData.ShopList != null) { this.ShopList = tempData.ShopList; } if (tempData.SelfpayingList != null) { this.SelfpayingList = tempData.SelfpayingList; } if (tempData.OfferList != null) { this.OfferList = tempData.OfferList; } if (tempData.LineList != null) { this.LineList = tempData.LineList; } if (tempData.AllCityList != null) { this.AllCityList = tempData.AllCityList; } if (tempData.StartCity != null) { this.StartCity = tempData.StartCity; } this.UseTypeArray = tempData.UseTypeArray; this.AirPickUp = tempData.AirPickUp; this.AirSend = tempData.AirSend; this.PostConfig["OpenState"] = this.OpenState; this.PostConfig.PDFAlias = tempData.PDFAlias; } else { this.Error(res.data.message); } }, err => {} ); } }, //提交验证 submitForm() { let travelConfigVal = this.$refs["TravelConfig"].validateForm(); let travelPriceVal = this.$refs["TravelPrice"].validateForm(); let travelDaysTripVal = this.$refs["TravelDaysTrip"].validateForm(); if (!travelConfigVal) { this.Error("请完善配置信息"); } if (!travelPriceVal) { this.Error("请完善团期信息"); } if (!travelDaysTripVal) { this.Error("请完善行程信息"); } if (travelConfigVal && travelPriceVal && travelDaysTripVal) { if (this.isSubmit) { this.isSubmit = false; //团队配置 var postData = this.PostConfig; //配置编号 postData.ID = this.ConfigId; //团期报价 postData.PriceList = this.PostPrice; postData.Feature = this.PostFeature; postData.Feature.FeeInclude = this.PostNotice.FeeInclude; postData.Feature.FeeNonInclude = this.PostNotice.FeeNonInclude; postData.Feature.ImportantTip = this.PostNotice.ImportantTip; postData.Feature.WarmTip = this.PostNotice.WarmTip; postData.Feature.B2BRemark = this.PostNotice.B2BRemark; postData.Feature.ShopRemark = this.PostNotice.ShopRemark; this.$refs.TravelFeature.getHtml(postData); let that=this setTimeout(()=>{ that.SaveData() },1500) } } }, //返回顶部 backTop() { var timer = setInterval(function() { var scrollTop = document.getElementsByClassName("flexParent")[0] .scrollTop; var ispeed = Math.floor(-scrollTop / 6); if (scrollTop == 0) { clearInterval(timer); } document.getElementsByClassName("flexParent")[0].scrollTop = scrollTop + ispeed; }, 30); }, goUrl(path) { this.$router.push({ path: path, query: { cache: true } }); }, custormAnchor(anchorName, index) { // 找到锚点 let anchorElement = document.getElementById(anchorName); // 如果对应id的锚点存在,就跳转到锚点 if (anchorElement) { anchorElement.scrollIntoView(); } this.ckedNav = index; }, //滚动事件 ScrollMethod() { var that = this; var s1, s2, s4, s5, s6; document .getElementsByClassName("flexParent")[0] .addEventListener("scroll", function() { if (document.getElementById("firstAnchor") != null) { s1 = document.getElementById("firstAnchor").offsetTop; } if (document.getElementById("sccondAnchor") != null) { s2 = document.getElementById("sccondAnchor").offsetTop; } if (document.getElementById("fourthAnchor") != null) { s4 = document.getElementById("fourthAnchor").offsetTop; } if (document.getElementById("fiveAnchor") != null) { s5 = document.getElementById("fiveAnchor").offsetTop; } if (document.getElementById("sixAnchor") != null) { s6 = document.getElementById("sixAnchor").offsetTop; } if (s1 >= this.scrollTop - 50 && s1 <= this.scrollTop + 50) { that.ckedNav = 1; } else if (s2 >= this.scrollTop - 50 && s2 <= this.scrollTop + 50) { that.ckedNav = 2; } else if (s4 >= this.scrollTop - 50 && s4 <= this.scrollTop + 50) { that.ckedNav = 4; } else if (s5 >= this.scrollTop - 50 && s5 <= this.scrollTop + 50) { that.ckedNav = 5; } else if (s6 >= this.scrollTop - 50 && s6 <= this.scrollTop + 50) { that.ckedNav = 6; } }); }, //预览 getJourney() { //根据ID 获取行程内容 var that = this; this.tripTitle = this.PostConfig.Title; this.$nextTick(() => { that.$refs.comDialog.GetTrip(); }); that.outerVisible = true; } }, mounted() { this.initFileList(); this.ConfigId = this.$route.query.configId; this.OpenState = this.$route.query.openState; this.NoticeParameters.ConfigId = this.ConfigId; if (this.ConfigId > 0) { this.initConfig(this.ConfigId); } this.ScrollMethod(); } }; </script>