<style> .productQuerySearch{width: 100%; min-height: auto; overflow: hidden; padding:0 0 20px 0;} .productQuerySearch li{float: left; font-size: 12px; color: #666; margin:20px 0 0px 0;} .productQuerySearch li>span {display: inline-block; } .productQuerySearch li span>em{display: inline-block; min-width: 60px; text-align: right; font-style: normal; margin:0 12px 0 0;} .productQuerySearch li:last-child{position: fixed;z-index: 50;top: 36px;right: 20px;} .productQuerySearch ul{overflow: hidden} ._teamProductModule{ padding:0 10px;} ._teamProductModule li{ height: 144px; border:1px solid #E5E5E5;background: #fff; margin-bottom: 10px; color: #333; font-size: 14px;} ._teamProductModule li i.iconfont{color: #bbb;margin-right: 8px;} ._teamProductModule li>div{float: left;height: 144px; border-right: 1px dashed #DCDFE6;} ._teamProductModule li>div:last-child{border-right: none;} ._teamProductModule li .d11{float: left; width: 120px; height: 80px; margin: 14px 14px 0 14px; } ._teamProductModule li .d11>li{width: 120px; height: 80px; border: none;} ._teamProductModule li .d11>li>img{width: 120px; heAlNameight: 80px;} ._teamProductModule li .d12{float: left; padding-top: 18px; width: 200px;} ._teamProductModule li .d12 .d12p{margin-top: 3px; font-size: 12px; color: #999;cursor: pointer; max-height: 80px; line-height: 20px; display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical } ._teamProductModule li .d12 .d12p:hover{text-decoration: underline; color: #333;} ._teamProductModule li .d2{text-align: center; padding-top: 20px;} ._teamProductModule li .d2 p.flightNo{background: #ccc; width: 136px; margin: 5px 0; padding: 0 10px; height: 22px; line-height: 22px; display: inline-block; font-size: 14px; } ._teamProductModule li .d2 p.flightNo em{font-style: normal; color: #333;font-size: 12px; font-weight: bold;} ._teamProductModule li .d2 p.flightNo .flem{ height: 22px; width: 50px; display: inline-block; overflow: hidden;white-space: nowrap;text-overflow: ellipsis} ._teamProductModule li .d2 p>span{color: #fff; font-size: 12px; border-radius: 10px; background: #2AAEF2; padding: 2px 5px; cursor: pointer;} ._teamProductModule li .d2>div>div{display: inline-block; line-height: 24px; font-size: 12px;} ._teamProductModule li .d3{padding-left: 40px; padding-top: 20px;} ._teamProductModule li .d3 p{line-height: 24px;} ._teamProductModule li .d3 p>span{color: #666; font-size: 12px; margin-right: 10px;} ._teamProductModule li .d3 p>em{background: #FF9C00; font-style: normal; margin-left: 8px; color: #fff; border-radius: 4px; padding: 2px 5px;} ._teamProductModule li .d4{padding-left: 40px; padding-top: 20px;} ._teamProductModule li .d4 p span.price{color: #333; text-decoration: underline; font-size: 12px;} ._teamProductModule li .d4 p span.price:hover{color: #E95252; font-weight: bold; cursor: pointer;} ._teamProductModule li .d5{padding-left: 40px; padding-top: 20px;} ._teamProductModule li .d5 p{line-height: 26px;} ._teamProductModule li .d5 p>span{color: #666; font-size: 12px; margin-right: 10px;} ._teamProductModule li .d5 p>i{font-weight: bold; font-style: normal;} ._teamProductModule li .d7{text-align: center; padding-top: 60px;} ._teamProductModule li .d7 button{width: 30px; height: 30px;border-radius:4px;} ._teamProductModule li .d7 .el-button--primary { padding: 5px; margin: 0; font-size: 14px!important; color: #fff; } ._teamProductModule li .d7 i.iconfont{color: #fff;margin: 0;} .elPopoverLayer{padding: 0px 10px;} .elPopoverLayer p{line-height: 34px; font-size: 12px;} .elPopoverLayer p>i{font-style: normal; border:1px solid #999; padding: 0 3px; font-size: 12px; margin-right: 10px;font-weight: bold;color: #333;} .elPopoverLayer p>span{display: inline-block;width:130px;} .elPopoverLayer p>span>b{margin-left: 10px; color: #2AAEF2;} .superSearchLayer>p{padding: 20px 0; font-size: 14px; color: #333; font-weight: bold;} .superSearchLayer>div{margin-top: 20px; color: #666; font-size: 12px;} .superSearchLayer>div>span{margin:0 15px 0 5px;} .pro_tripDetails {padding: 0; box-shadow: 0px 1px 3px 0px #dedede;} .pro_tripDetails .popper__arrow::after {border-bottom-color: #ededed !important;} .pro_tripDetails table { padding: 10px 0 0 20px; background-color: #ededed; border-collapse: collapse; border: 1px solid #d2d2d2; font-size: 12px;} .pro_tripDetails table th { background-color: #ededed; padding: 5px;} .pro_tripDetails table td { background-color: #ffffff; padding: 9px 15px;color: #333333;border: 1px solid #d2d2d2;} .pro_tripDetails table td._d_name {background-color: #ededed;} .pro_tripDetails table ._color_666 {color: #666666;} .pro_tripDetails table tr._color_666 th { padding: 9px 15px;} ._teamProductModule .disabledBtn{background: #999!important;border-color:#999!important} ._new_item{ margin: 0; padding: 15px 15px 15px 10px; } ._new_item>._tit{ display: flex; justify-content: space-between; font-size: 12px; color: #6e6e6e; } ._new_item>._tit .iconfont{ font-size: 12px; } ._new_item>._new_item_i{ margin: 15px 0; } ._new_item>._new_item_i .iconfont{ color: #BBBBBB; } ._new_item>._new_item_i span{ color: #333333; font-size: 14px; } ._new_item>._new_item_i ._new_item_i_name{ margin-top: 3px; font-size: 12px; color: #333333; cursor: pointer; max-height: 80px; line-height: 20px; display: -webkit-box; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical; } ._cunter_info{ margin-top: 5px; margin-left: 20px; padding: 10px; background-color: #F5F5F5; } ._new_item_i p.flightNo{margin:5px 10px 5px 0;background: #ccc; width: 136px; padding: 0 10px; height: 22px; line-height: 22px; display: inline-block; font-size: 14px; } ._new_item_i p.flightNo em{font-style: normal; color: #333;font-size: 12px; font-weight: bold;} ._new_item_i p.flightNo .flem{ height: 22px; width: 50px; display: inline-block; overflow: hidden;white-space: nowrap;text-overflow: ellipsis} ._new_item_i>div>div{ display: inline-block; line-height: 24px; font-size: 12px; text-align: center; } ._new_item_i span._wangfan{ color: #fff; font-size: 12px; border-radius: 10px; background: #2AAEF2; padding: 2px 5px; cursor: pointer; } ._team_info{ display: flex; justify-content: space-between; align-items: center; } ._cunter_info._team_info p>span{color: #666; font-size: 12px; margin-right: 10px;} ._new_item_i_line ._date_info{background: #FF9C00; font-style: normal; margin-left: 8px; color: #fff; border-radius: 4px; padding: 2px 5px;} ._price_info{ display: flex; align-items: center; } ._price_info span.price{color: #333; text-decoration: underline; font-size: 12px;} ._price_info span.price:hover{color: #E95252; font-weight: bold; cursor: pointer;} ._price_info p{ margin-right: 10px !important; } ._font_bold{ font-weight: bold; } ._rotate{ transform:rotate(180deg); } ._open_block{ cursor: pointer; } ._tcid_num{ background-color: #dbdbdb; display: inline-block; padding: 3px; } ._border_bottom{ border-bottom: 1px solid #e5e5e5; } </style> <template> <div class="flexOne"> <div class="_teamProductModule" v-loading='loading'> <template v-if="list.length!=0"> <dir class="_new_item" v-for="(item,index) in list" :key="index" :class="index!=list.length-1?'_border_bottom':''"> <p class="_tit"> <span class="_tcid_num">团号:{{item.TCID}}</span> <!-- <span class="_btn _open_block" v-if="item.tableShowTeam" @click="item.tableShowTeam=false">收起 <i class="iconfont icon-gengduo _rotate"></i> </span> <span class="_btn _open_block" v-else @click="item.tableShowTeam=true">展开 <i class="iconfont icon-gengduo"></i> </span> --> </p> <div class="_new_item_i"> <p class="_new_item_i_line"> <i class="iconfont icon-biaoti1"></i> <span>{{item.LineName}}({{item.LtName}})</span> </p> <p class="_new_item_i_name _cunter_info" @click="getJourney(item.TCID,item.LineName)" :title="item.Title">{{item.Title}}</p> </div> <div class="_new_item_i"> <p class="_new_item_i_line"> <i class="iconfont icon-hangban1"></i> <span>去程航班</span> </p> <div class="_cunter_info" v-if="item.flightList&&item.flightList.length>0"> <p class="flightNo"> <em class="fl flem" :title="item.flightList[0]&&item.flightList[0].AlName">{{item.flightList[0].AlName}}</em> <em class="fr">{{item.flightList[0]&&item.flightList[0].Flight_number}}</em> </p> <div> <p>{{item.flightList[0]&&item.flightList[0].DepartureName}}---------{{item.flightList[0]&&item.flightList[0].ArrivalCityName}}</p> <p> <span style="background-color: transparent;color: #000000;">{{item.flightList[0]&&item.flightList[0].Departure_time}}</span> <el-popover width="900" trigger="click" popper-class="pro_tripDetails"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr class="_color_666"> <th width="60">{{$t('Airticket.Air_segment')}}</th> <th width="250">{{$t('Airticket.Air_Trip')}}</th> <th width="80">{{$t('system.query_flightNum')}}</th> <th width="150">起飞时间</th> <th width="100">经停城市</th> <th width="150">经停时间</th> <th width="80">到达时间</th> </tr> <tr v-for="(ds,din) in tripDetails" :key="din"> <td class="_d_name _color_666"> <span v-if="din==0">{{$t('Airticket.Air_go')}}</span> <span v-else-if="din==tripDetails.length-1">{{$t('Airticket.Air_returnTrip')}}</span> <span v-else-if="din>0 && din!=tripDetails.length-1">{{$t('Airticket.Air_transit')}}</span> </td> <td> <div>{{ds.DepartureName}}-{{ds.ArrivalCityName}}</div> <div style="margin-top:5px;">{{ds.dName}}-{{ds.aName}}</div> </td> <td>{{ds.Flight_number}}</td> <td>{{ds.FlightDate}} {{ds.Departure_time}}</td> <td>{{ds.StopoverName}}</td> <td>{{ds.Stopover_time!=' - '?ds.Stopover_time:''}}</td> <td>{{ds.Arrival_time}}</td> </tr> </table> <span slot="reference" class="_wangfan" @click="getDetails(index)">往返</span> </el-popover> <span style="background-color: transparent;color: #000000;">{{item.flightList[0]&&item.flightList[0].Arrival_time}}</span> </p> </div> <div> <p>{{item.ACityName}}</p> <p>{{item.Arrival_time}}</p> </div> </div> </div> <div class="_new_item_i"> <p class="_new_item_i_line"> <i class="iconfont icon-tuandui"></i> <span>团队信息</span><em class="_date_info">{{item.DayNum}}天{{item.NightNum}}晚</em> </p> <div class="_cunter_info _team_info"> <p><span>出发时间</span>{{item.StartDate}}</p> <p><span>出发城市</span>{{item.StartCityName}}</p> <p><span>返回城市</span>{{item.ReturnArriveCityName}}</p> <p><span>出团公司</span>{{item.OutBranchName}}</p> </div> </div> <div class="_new_item_i"> <p class="_new_item_i_line"> <i class="iconfont icon-jiage"></i> <span>价格信息</span> </p> <div class="_cunter_info _price_info"> <p style="color:#47BF8C; font-size: 16px; font-weight: bold; margin: 5px 0;">¥{{item.B2BMemberPrice|priceFormat(item.B2BMemberPrice)}}</p> <p> <el-popover width="630" trigger="click"> <div class="elPopoverLayer"> <p> <i>成人</i> <span>同行会员<b>{{item.B2BMemberPrice|priceFormat(item.B2BMemberPrice)}}</b></span> <span>同行<b>{{item.B2BPrice|priceFormat(item.B2BPrice)}}</b></span> <span>直客会员<b>{{item.B2CMemberPrice|priceFormat(item.B2CMemberPrice)}}</b></span> <span>直客<b>{{item.B2CPrice|priceFormat(item.B2CPrice)}}</b></span> </p> <p> <i>小孩</i> <span>占床<b>{{item.ChildNeedPrice|priceFormat(item.ChildNeedPrice)}}</b></span> <span>不占床<b>{{item.ChildNoNeedPrice|priceFormat(item.ChildNoNeedPrice)}}</b></span> <span>婴儿<b>{{item.BabyPrice|priceFormat(item.BabyPrice)}}</b></span> <span>附加费<b>{{item.BabyChargePrice|priceFormat(item.BabyChargePrice)}}</b></span> </p> <p> <i>老人</i> <span>附加费<b>{{item.OldManChargePrice|priceFormat(item.OldManChargePrice)}}</b></span> </p> <p> <i>其他</i> <span>签证费<b>{{item.VisaPrice|priceFormat(item.VisaPrice)}}</b></span> <span>退签证费<b>{{item.BackVisaPrice|priceFormat(item.BackVisaPrice)}}</b></span> <span>杂费<b>{{item.OtherPrice|priceFormat(item.OtherPrice)}}</b></span> <span>单地接价格<b>{{item.SingleDMCPrice|priceFormat(item.SingleDMCPrice)}}</b></span> <span>单房差价<b>{{item.SingleRoomPrice|priceFormat(item.SingleRoomPrice)}}</b></span> </p> <p> <i style="color: #F57C00; border-color: #F57C00;">优惠</i> <span>同行返佣<b>{{item. RebatePrice|priceFormat(item.RebatePrice)}}</b></span> <span>早鸟优惠<b>{{item.DiscountPrice|priceFormat(item.DiscountPrice)}}</b></span> </p> </div> <span slot="reference" class="price">查看价格明细</span> </el-popover> </p> </div> </div> <div class="_new_item_i"> <p class="_new_item_i_line"> <i class="iconfont icon-tuandui"></i> <span>团位信息</span> </p> <div class="_cunter_info _team_info"> <p><span>当前余位</span><i class="_font_bold">{{item.SurplusSeat}}</i></p> <p><span>已报入</span><i class="_font_bold">{{item.Seat==''?"0":item.Seat}}人</i>(占位:{{item.Occupied}}人)</p> <p><span>候补</span> <em v-if='item.IsSubstitution==1'>可以候补</em> <em v-if='item.IsSubstitution!=1' style="color: #E95252;">本团拒绝候补</em> </p> </div> </div> </dir> </template> <!-- <ul v-if="list.length!=0"> <li v-for="(item,index) in list"> <div class="w400"> <div class="d11"> <li v-if='item.ImgCover.length>0'> <carousel :imgArr="item.ImgCover"></carousel> </li> <li v-else> <img v-if="!item.ImgCover" src="../../assets/img/bg_z1@2x.png"> <img v-else :src="item.ImgCover" :onerror="defaultImg"> </li> </div> <div class="d12"> <p> <i class="iconfont icon-biaoti1"></i> {{item.LineName}} </p> <p>{{item.LtName}}</p> <p class="d12p" @click="getJourney(item.TCID,item.LineName)" :title="item.Title">{{item.Title}}</p> </div> </div> <div class="w240 d2"> <p style="text-align: left; text-indent: 50px;"><i class="iconfont icon-hangban1"></i>去程航班</p> <p class="flightNo"> <em class="fl flem" :title="item.AlName">{{item.AlName}}</em> <em class="fr">{{item.Flight_number}}</em></p> <div> <div> <p>{{item.DCityName}}</p> <p>{{item.Departure_time}}</p> </div> <div> <p>---------</p> <p> <el-popover width="500" trigger="click" popper-class="pro_tripDetails"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr class="_color_666"> <th>{{$t('Airticket.Air_segment')}}</th> <th>{{$t('system.query_flightNum')}}</th> <th>{{$t('Airticket.Air_flightDate')}}</th> <th>{{$t('Airticket.Air_Trip')}}</th> </tr> <tr v-for="(ds,din) in tripDetails"> <td class="_d_name _color_666" v-if="ds.TicketType==1&&ds.IsTransfer==0">启程</td> <td class="_d_name _color_666" v-if="ds.TicketType==1&&ds.IsTransfer==1">中转</td> <td class="_d_name _color_666" v-if="ds.TicketType==2&&ds.IsTransfer==0">回程</td> <td class="_d_name _color_666" v-if="ds.TicketType==2&&ds.IsTransfer==1">中转</td> <td>{{ds.FlightNumber}}</td> <td>{{ds.StartDate}}</td> <td>{{ds.DepartureAirPortName}}-{{ds.ArrivalAirPortName}}</td> </tr> </table> <span slot="reference" @click="getFlightDetails(item.TCID)">往返</span> </el-popover> </p> </div> <div> <p>{{item.ACityName}}</p> <p>{{item.Arrival_time}}</p> </div> </div> </div> <div class="w240 d3"> <p><i class="iconfont icon-tuandui"></i>团队信息<em>{{item.DayNum}}天{{item.NightNum}}晚</em></p> <p><span>出发时间</span>{{item.StartDate}}</p> <p><span>出发城市</span>{{item.StartCityName}}</p> <p><span>返回城市</span>{{item.ReturnArriveCityName}}</p> <p><span>出团公司</span>{{item.OutBranchName}}</p> </div> <div class="w180 d4"> <p><i class="iconfont icon-jiage"></i>价格信息</p> <p style="color:#47BF8C; font-size: 16px; font-weight: bold; margin: 5px 0;">¥{{item.B2BMemberPrice|priceFormat(item.B2BMemberPrice)}}</p> <p> <el-popover width="630" trigger="click"> <div class="elPopoverLayer"> <p> <i>成人</i> <span>同行会员<b>{{item.B2BMemberPrice|priceFormat(item.B2BMemberPrice)}}</b></span> <span>同行<b>{{item.B2BPrice|priceFormat(item.B2BPrice)}}</b></span> <span>直客会员<b>{{item.B2CMemberPrice|priceFormat(item.B2CMemberPrice)}}</b></span> <span>直客<b>{{item.B2CPrice|priceFormat(item.B2CPrice)}}</b></span> </p> <p> <i>小孩</i> <span>占床<b>{{item.ChildNeedPrice|priceFormat(item.ChildNeedPrice)}}</b></span> <span>不占床<b>{{item.ChildNoNeedPrice|priceFormat(item.ChildNoNeedPrice)}}</b></span> <span>婴儿<b>{{item.BabyPrice|priceFormat(item.BabyPrice)}}</b></span> <span>附加费<b>{{item.BabyChargePrice|priceFormat(item.BabyChargePrice)}}</b></span> </p> <p> <i>老人</i> <span>附加费<b>{{item.OldManChargePrice|priceFormat(item.OldManChargePrice)}}</b></span> </p> <p> <i>其他</i> <span>签证费<b>{{item.VisaPrice|priceFormat(item.VisaPrice)}}</b></span> <span>退签证费<b>{{item.BackVisaPrice|priceFormat(item.BackVisaPrice)}}</b></span> <span>杂费<b>{{item.OtherPrice|priceFormat(item.OtherPrice)}}</b></span> <span>单地接价格<b>{{item.SingleDMCPrice|priceFormat(item.SingleDMCPrice)}}</b></span> <span>单房差价<b>{{item.SingleRoomPrice|priceFormat(item.SingleRoomPrice)}}</b></span> </p> <p> <i style="color: #F57C00; border-color: #F57C00;">优惠</i> <span>同行返佣<b>{{item. RebatePrice|priceFormat(item.RebatePrice)}}</b></span> <span>早鸟优惠<b>{{item.DiscountPrice|priceFormat(item.DiscountPrice)}}</b></span> </p> </div> <span slot="reference" class="price">查看价格明细</span> </el-popover> </p> </div> <div class="w240 d5"> <p><i class="iconfont icon-tuanwei"></i>团位信息</p> <p><span>当前余位</span><i>{{item.SurplusSeat}}</i></p> <p><span>已报入</span><i>{{item.Seat==''?"0":item.Seat}}人</i>(占位:{{item.Occupied}}人)</p> <p><span>候补</span> <em v-if='item.IsSubstitution==1'>可以候补</em> <em v-if='item.IsSubstitution!=1' style="color: #E95252;">本团拒绝候补</em> </p> </div> </li> </ul> --> <div class="noData" v-else> 暂无数据 </div> </div> <!-- <el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage" layout="total,prev, pager, next, jumper" :page-size=msg.pageSize :total=total> </el-pagination> --> <el-dialog custom-class='ComTeamPlan_info_box' :title="tripTitle" :visible.sync="outerVisible" center> <commonTeamInfo1 ref="comTeam"></commonTeamInfo1> </el-dialog> </div> </template> <script> import commonTeamInfo from "./commonTeamInfo.vue"; import carousel from "./carouselT.vue"; export default { props:["ID"], data() { return { pickerOptions0: { disabledDate: (time) => { //disabledDate true 为禁止选择 let starTime=new Date(this.starTime) return time.getTime()>starTime.getTime() //return time.getTime() > Date.now()||time.getTime() < endTime.getTime()-2.592e9 //禁止选择的日期:(今天之后的日期,结束日期之后一个月以前的日期) } }, pickerOptions1: { disabledDate: (time) => { let endTime=new Date(this.endTime) return time.getTime()<endTime.getTime()-5.64e7 //return time.getTime() <starTime.getTime() ||time.getTime() > starTime.getTime()+2.592e9 || time.getTime() > Date.now();//禁止选择的日期:(开始日期之前,开始日期一个月以后的日期,今天之后的日期) } }, userId:'', customerId:'', createByInfo:'', isUpdateSharePeople:false, starTime:'', endTime:'', stratPrice:'', stratPriceShow:false, returnPrice:'', returnPriceShow:false, minPrice:0, loading: true, loading2: false, isShowLayer: false, outerVisible: false, tripTitle: '', currentPage: 1, total: 0, addObj:{}, addMsg:{ OrderId:'0', TCID:'0', CustomerType:'', GroupType:'', ContactName:'', ContactMobile:'', CustomerId:'', DepartureCityId:'', ReturnArriveCityId:'', IsIntermodal:'2', IsReturnIntermodal:'2', Unit_Price:'0', TC_Price:'0', ManNum:'0', ChirdNum:'0', ChirdNeedBedNum:'0', BabyNum:'0', OldPeopleNum:'0', SingleRoomNum:'0', PreferPrice:0, YSeatNum:'0', ESeatNum:'0', FSeatNum:'0', Commission:'0', ClientSource:'', BrandId:'', TradeWay:'2', PlatformOrder:'', GuestNum:0, IsChildrenTour:'0', IsBirdDiscount:'0', PredictRoomNum:'0', BigRoomNum:'0', TripleRoomNum:'0', TradeDate:'', CostType:'', Remarks:'', VisaNum:'0', SafeNum:'0', AirticketNum:'0', ScenicRefundArr:[], GoCityTime:'', BackCityTime:'', CommissionSharePeople:'-1', CommissionShareMoney:'0', }, employeeMsg: { BranchId: '-1', IsLeave: 0 }, employeeList: [], rules:{ CustomerType:[ { required: true, message: '请选择客户类型', trigger: 'change' } ], CustomerId:[ { required: false, message: '请选择客户门店', trigger: 'change' } ], DepartureCityId:[ { required: true, message: '请选择出发城市', trigger: 'change' } ], GroupType:[ { required: true, message: '请选择参团类型', trigger: 'change' } ], ClientSource:[ { required: true, message: '请选择客人来源', trigger: 'change' } ], TradeWay:[ { required: true, message: '请选择交易方式', trigger: 'change' } ], ContactName:[ { required: true, message: '请输入联系人姓名', trigger: 'blur' } ], ContactMobile:[ { required: true, message: '请输入联系人电话', trigger: 'blur' }, {pattern: /^(0|86|17951)?(13[0-9]|15[012356789]|17[012356789]|18[0-9]|19[0-9]|14[57])[0-9]{8}$/, message: '请输入正确的手机'} ], }, msg: { pageIndex: 1, pageSize: 10, LineId: '-1', LineTeamId: '-1', TCID: '', StartTime: '', EndTime: '', BranchId: '-1', CityId: '-1', DaysTrip: '', SalePlat: [], minGroupSize: '', maxGroupSize: '', minApplySize: '', maxApplySize: '', FlightID: '-1' }, defaultImg: 'this.src="' + require("../../assets/img/bg_z1@2x.png") + '"', list: [], LineList: [], LineTeamList: [], airlineList: [], companyList: [], salePlace: [], startCityList: [], startCityList1:[], tripDetails: [], khlxList:[], ctlxList:[], ddlyList:[], ddztList:[], khmdList:[], ssptList:[], jyfsList:[], fylxList:[], ScenicRefundList:[], ScenicRefundMoney:0, TCIDList:[], } }, components: { commonTeamInfo1: commonTeamInfo, carousel: carousel }, filters: { priceFormat(value) { if(value==null){ return 0.00; } let nStr = value.toFixed(2) nStr += ''; let x = nStr.split('.'); let x1 = x[0]; let x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while(rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } return x1 + x2; }, }, methods: { getDetails(index) { this.tripDetails = this.list[index].flightList; }, goUrlR(path,obj){ let routeData = this.$router.resolve({name: path, query: {id: obj.TCID,configId:obj.ConfigID}}) window.open(routeData.href, '_blank'); }, goUrl(path,id){ this.$router.push({name: path,query:{"id":id}}); }, getUnionTravelPrice(obj,type){ let msg={} msg.TCID=obj.TCID msg.Type=type if(type==1){ msg.StartCityId=this.addMsg.DepartureCityId msg.CityTime=this.addMsg.GoCityTime if(this.addMsg.IsIntermodal==2){ this.stratPrice='0' this.stratPriceShow=false this.getTotalPrice() }else{ this.apipost('sellorder_get_GetUnionTravelPrice',msg,res=>{ if(res.data.resultCode == 1) { this.stratPrice=res.data.data.Price if(this.stratPrice==0){ this.stratPriceShow=false }else{ this.stratPriceShow=true } this.getTotalPrice() } },err=>{}) } }else{ msg.StartCityId=this.addMsg.ReturnArriveCityId msg.CityTime=this.addMsg.BackCityTime if(this.addMsg.IsReturnIntermodal==2){ this.returnPrice='0' this.returnPriceShow=true this.getTotalPrice() }else{ this.apipost('sellorder_get_GetUnionTravelPrice',msg,res=>{ if(res.data.resultCode == 1) { this.returnPrice=res.data.data.Price if(this.returnPrice==0){ this.returnPriceShow=false }else{ this.returnPriceShow=true } this.getTotalPrice() } },err=>{}) } } }, ScenicRefundMethods(){ if(this.addMsg.ScenicRefundArr.length==0){ this.ScenicRefundMoney=0; } else{ this.ScenicRefundMoney=0; this.addMsg.ScenicRefundArr.forEach(x=>{ let listIndex=this.ScenicRefundList.findIndex(item=>item.Id==x); if(listIndex!=-1){ this.ScenicRefundMoney+= this.ScenicRefundList[listIndex].RefundMoney; } }); }; this.getTotalPrice(); this.getTicheng(); }, tradeWayMethods(){ if(this.addMsg.TradeWay==2){ this.addMsg.PlatformOrder='' this.addMsg.MinOrderPrice=0 this.addMsg.CostType='' this.addMsg.TradeDate='' } }, platformOrderMethods(){ if(this.addMsg.PlatformOrder=='') { this.addMsg.MinOrderPrice=0 this.addMsg.CostType='' this.addMsg.TradeDate='' }else{ this.addMsg.MinOrderPrice=this.minPrice*(Number(this.addMsg.AirticketNum)+Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum)) } }, getMinPrice(id){ this.apipost("line_post_Get",{ID:id},res=>{ if(res.data.resultCode == 1) { this.minPrice=res.data.data.LowDeposit } },err=>{}) }, getTypePrice(){ this.addMsg.ContactName='' this.addMsg.ContactMobile='' if(this.addMsg.CustomerType==1){ this.addMsg.TC_Price=this.addObj.B2BMemberPrice this.addMsg.CustomerId='' } if(this.addMsg.CustomerType==2){ this.addMsg.TC_Price=this.addObj.B2BPrice this.addMsg.CustomerId='' } if(this.addMsg.CustomerType==3){ this.addMsg.TC_Price=this.addObj.B2CMemberPrice this.addMsg.CustomerId='0' this.addMsg.CommissionShareMoney='0' } if(this.addMsg.CustomerType==4){ this.addMsg.TC_Price=this.addObj.B2CPrice this.addMsg.CustomerId='0' this.addMsg.CommissionShareMoney='0' } }, getTicheng(){ //提成 let num=Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum) let yh=0 if(num>0){ this.apipost('sellorder_get_GetOrderMinPrice',{ltID:this.addObj.ltID,Num:num},res=>{ yh=res.data.data },err=>{}) } // let cj='成交单价-最低成交价格(标准单价-符合人数[成人,儿童,老人]条件的最高少价)' let chajia=Number(this.addMsg.Unit_Price)-(this.addMsg.TC_Price-yh) let ewtc=chajia>0?chajia*0.5*num:chajia*num //额外提成 this.addMsg.Commission=(Number(this.addMsg.PreferPrice)*0.01+ewtc).toFixed(2) this.addMsg.CommissionShareMoney='0' if((this.addMsg.CustomerType==1||this.addMsg.CustomerType==2)&&this.addMsg.CommissionSharePeople!='') { if(this.addMsg.CommissionSharePeople!='-1'){ if(this.addMsg.Commission>0){ this.addMsg.CommissionShareMoney=this.addMsg.Commission/2 this.addMsg.Commission=this.addMsg.Commission-this.addMsg.CommissionShareMoney }else{ this.addMsg.CommissionShareMoney='0' } } } }, getHouseNo(){ //算法:((成人+儿童占床数+老人-(三人房数量*3))-单房数)/2+单房数+三人房数量 this.addMsg.PredictRoomNum=(Number(this.addMsg.AirticketNum)+(Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNeedBedNum)+Number(this.addMsg.OldPeopleNum))-Number(this.addMsg.TripleRoomNum)*3-Number(this.addMsg.SingleRoomNum))/2+Number(this.addMsg.SingleRoomNum)+Number(this.addMsg.TripleRoomNum) }, getNumber(){ this.addMsg.VisaNum=(Number(this.addMsg.AirticketNum)+Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.BabyNum)+Number(this.addMsg.OldPeopleNum)) this.addMsg.SafeNum=(Number(this.addMsg.AirticketNum)+Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.BabyNum)+Number(this.addMsg.OldPeopleNum)) this.addMsg.YSeatNum=(Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum)) }, getTotalPrice(){ if(this.addObj.IsBirdDiscount==1){ //早鸟优惠 //this.addMsg.Unit_Price //成交单价 //BabyPrice 婴儿价 //BabyChargePrice 儿童附加费 //OldManChargePrice 老人 附加费 //DiscountPrice 早鸟优惠 let chengren=Number(this.addMsg.ManNum)*(Number(this.addMsg.Unit_Price)-this.addObj.DiscountPrice) let ertong=Number(this.addMsg.ChirdNum)*(Number(this.addMsg.Unit_Price)-this.addObj.DiscountPrice+this.addObj.BabyChargePrice) let yinger=Number(this.addMsg.BabyNum)*this.addObj.BabyPrice let laoren=Number(this.addMsg.OldPeopleNum)*(Number(this.addMsg.Unit_Price)-this.addObj.DiscountPrice+this.addObj.OldManChargePrice) let zafeiqianzhen=this.addObj.OtherPrice*(Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum))+this.addObj.VisaPrice*(Number(this.addMsg.AirticketNum)+Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum))-this.addObj.BackVisaPrice*((Number(this.addMsg.AirticketNum)+Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.BabyNum)+Number(this.addMsg.OldPeopleNum))-Number(this.addMsg.VisaNum)) let danfang=Number(this.addMsg.SingleRoomNum)*this.addObj.SingleRoomPrice let ertongbed=this.addObj.ChildNeedPrice*Number(this.addMsg.ChirdNeedBedNum)+this.addObj.ChildNoNeedPrice*(Number(this.addMsg.ChirdNum)-Number(this.addMsg.ChirdNeedBedNum)) let lianyun=(Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum))*(Number(this.stratPrice)+Number(this.returnPrice)) let dandijie=this.addObj.SingleDMCPrice*Number(this.addMsg.AirticketNum) this.addMsg.PreferPrice=dandijie+lianyun+chengren+ertong+yinger+laoren+zafeiqianzhen+danfang+ertongbed-this.ScenicRefundMoney*(Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum)); }else{ let chengren=Number(this.addMsg.ManNum)*(Number(this.addMsg.Unit_Price)) let ertong=Number(this.addMsg.ChirdNum)*(Number(this.addMsg.Unit_Price)+this.addObj.BabyChargePrice) let yinger=Number(this.addMsg.BabyNum)*this.addObj.BabyPrice let laoren=Number(this.addMsg.OldPeopleNum)*(Number(this.addMsg.Unit_Price)+this.addObj.OldManChargePrice) let zafeiqianzhen=this.addObj.OtherPrice*(Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum))+this.addObj.VisaPrice*(Number(this.addMsg.AirticketNum)+Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum))-this.addObj.BackVisaPrice*((Number(this.addMsg.AirticketNum)+Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.BabyNum)+Number(this.addMsg.OldPeopleNum))-Number(this.addMsg.VisaNum)) let danfang=Number(this.addMsg.SingleRoomNum)*this.addObj.SingleRoomPrice let ertongbed=this.addObj.ChildNeedPrice*Number(this.addMsg.ChirdNeedBedNum)+this.addObj.ChildNoNeedPrice*(Number(this.addMsg.ChirdNum)-Number(this.addMsg.ChirdNeedBedNum)) let lianyun=(Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum))*(Number(this.stratPrice)+Number(this.returnPrice)) let dandijie=this.addObj.SingleDMCPrice*Number(this.addMsg.AirticketNum) this.addMsg.PreferPrice=dandijie+lianyun+chengren+ertong+yinger+laoren+zafeiqianzhen+danfang+ertongbed-this.ScenicRefundMoney*(Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum)); } this.getTicheng() }, yzBigBed2(){ let x=Number(this.addMsg.AirticketNum)+Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNeedBedNum)+Number(this.addMsg.OldPeopleNum)-Number(this.addMsg.SingleRoomNum) let y=x-Number(this.addMsg.TripleRoomNum)*3-Number(this.addMsg.BigRoomNum)*2 if(y<0){ this.addMsg.SingleRoomNum=0 } this.getHouseNo() }, yzBigBed(){ let x=Number(this.addMsg.AirticketNum)+Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNeedBedNum)+Number(this.addMsg.OldPeopleNum)-Number(this.addMsg.SingleRoomNum) let y=x-Number(this.addMsg.TripleRoomNum)*3-Number(this.addMsg.BigRoomNum)*2 if(y<=-1){ this.addMsg.BigRoomNum=0 } this.getHouseNo() }, yzBigBed1(){ let x=Number(this.addMsg.AirticketNum)+Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNeedBedNum)+Number(this.addMsg.OldPeopleNum)-Number(this.addMsg.SingleRoomNum) let y=x-Number(this.addMsg.TripleRoomNum)*3-Number(this.addMsg.BigRoomNum)*2 if(y<=-1){ this.addMsg.TripleRoomNum=0 } this.getHouseNo() }, submitForm(addMsg) {//提交创建、修改表单 this.$refs[addMsg].validate((valid) => { if (valid) { this.saveOrder() } else { return false; } }); }, cancelSubmit(){ this.isShowLayer=false this.$refs['addMsg'].resetFields(); this.clearMsg() }, clearMsg(){ this.addMsg.OrderId='0' this.addMsg.TCID='0' this.addMsg.IsIntermodal='2' this.addMsg.IsReturnIntermodal='2' this.addMsg.Unit_Price='0' this.addMsg.TC_Price='0' this.addMsg.ManNum='0' this.addMsg.ChirdNum='0' this.addMsg.ChirdNeedBedNum='0' this.addMsg.BabyNum='0' this.addMsg.OldPeopleNum='0' this.addMsg.SingleRoomNum='0' this.addMsg.PreferPrice='0' this.addMsg.YSeatNum='0' this.addMsg.ESeatNum='0' this.addMsg.FSeatNum='0' this.addMsg.Commission='0' this.addMsg.BrandId='' this.addMsg.TradeWay='2' this.addMsg.GuestNum='0' this.addMsg.IsChildrenTour='0' this.addMsg.OrderId='0' this.addMsg.IsBirdDiscount='0' this.addMsg.PredictRoomNum='0' this.addMsg.BigRoomNum='0' this.addMsg.TripleRoomNum='0' this.addMsg.TradeDate='' this.addMsg.CostType='' this.addMsg.PlatformOrder='' this.ddlyList=[] this.addMsg.Remarks='' this.addMsg.MinOrderPrice='' this.addMsg.VisaNum='0'; this.addMsg.SafeNum='0'; this.addMsg.AirticketNum='0'; this.addMsg.ScenicRefundArr=[]; this.ScenicRefundMoney=0; this.addMsg.CommissionSharePeople='-1' this.addMsg.CommissionShareMoney='0' }, saveOrder(){ //验证人数和机位数 if((Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum))!=Number(this.addMsg.YSeatNum)+Number(this.addMsg.ESeatNum)+Number(this.addMsg.FSeatNum)) { this.$message.warning('人数和机位数不相等!') return } if((Number(this.addMsg.AirticketNum)+Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum)+Number(this.addMsg.BabyNum))<Number(this.addMsg.VisaNum)) { this.$message.warning('签证数量不能大于人数总和!') return } if((Number(this.addMsg.AirticketNum)+Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum)+Number(this.addMsg.BabyNum))<Number(this.addMsg.SafeNum)) { this.$message.warning('保险数量不能大于人数总和!') return } // if((Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum)+Number(this.addMsg.BabyNum))<Number(this.addMsg.AirticketNum)) // { // this.$message.warning('机票数量不能大于人数总和!') // return // } if(Number(this.addMsg.ChirdNeedBedNum)>Number(this.addMsg.ChirdNum)){ this.$message.warning('儿童占床不能大于儿童数!') return } if(Number(this.addMsg.ChirdNum)-Number(this.addMsg.ChirdNeedBedNum)+Number(this.addMsg.BabyNum)>Number(this.addMsg.ManNum)+Number(this.addMsg.OldPeopleNum)+Number(this.addMsg.ChirdNeedBedNum)) { this.$message.warning('儿童占床数量不足!') return } if(this.userId==this.createByInfo) { if(this.addMsg.CommissionSharePeople=='-1'){ this.addMsg.CommissionShareMoney='0' } } this.addMsg.TCID=this.addObj.TCID this.addMsg.GuestNum=Number(this.addMsg.ManNum)+Number(this.addMsg.ChirdNum)+Number(this.addMsg.OldPeopleNum)+Number(this.addMsg.BabyNum)+Number(this.addMsg.AirticketNum) this.addMsg.IsChildrenTour=this.addObj.IsSupportChildren this.addMsg.IsBirdDiscount=this.addObj.IsBirdDiscount this.apipost('sellorder_post_SetOrderInfo_02',this.addMsg,res=>{ if(res.data.resultCode == 1) { this.$message.success(res.data.message) this.$refs['addMsg'].resetFields(); this.getList() this.clearMsg() this.isShowLayer=false }else{ this.$message.error(res.data.message) } },err=>{}) }, goBuy(obj) { this.isUpdateSharePeople=false this.isShowLayer = true this.addObj=obj this.addMsg.DepartureCityId=obj.StartCityID this.addMsg.ReturnArriveCityId=obj.ReturnArriveCityId this.addMsg.GoCityTime=this.starTime=obj.StartCityTime this.addMsg.BackCityTime=this.endTime=obj.BackCityTime this.getMinPrice(obj.LineID); this.getScenicRefund(obj.TCID); this.clearMsg() }, getScenicRefund(TCID){ this.apipost('sellorder_get_GetScenicRefundList',{TCID},res=>{ if(res.data.resultCode == 1) { this.ScenicRefundList=res.data.data this.ScenicRefundList.forEach(item=>{ item['ScenicName']=item.CouponsName+' -¥'+ this.moneyFormat(item.RefundMoney); }) } },err=>{}) }, getJyfs(){ this.apipost('sellorder_get_GetSellTradeWayEnumList',{},res=>{ if(res.data.resultCode == 1) { this.jyfsList=res.data.data } },err=>{}) }, getFylx() { this.apipost('Financial_post_GetByOrderCostTypeList', {Type:1}, res => { if(res.data.resultCode == 1) { this.fylxList = res.data.data } else { } }, err => {}) }, getSspt(){ //给非直客 隐藏电话姓名赋值 let obj=this.khmdList.find(item=>item.customerId==this.addMsg.CustomerId) this.customerId=obj.customerId this.createByInfo=obj.createByInfo this.addMsg.ContactName=obj.customerName+'('+obj.contact+')' this.addMsg.ContactMobile=obj.contactNumber if(this.userId!=this.createByInfo) { this.addMsg.CommissionSharePeople=this.createByInfo this.isUpdateSharePeople=true }else{ this.addMsg.CommissionSharePeople='-1' this.isUpdateSharePeople=false } this.apipost('app_today_visit_GetCustomerBrandByCustomerId',{customerInfoId:this.addMsg.CustomerId},res=>{ if(res.data.resultCode == 1) { this.addMsg.BrandId='' this.ssptList=res.data.data } },err=>{}) }, getKhmdList(){ this.apipost('app_today_visit_GetOrderMyCustomerList',{typeId:this.addMsg.CustomerType,lineId:this.addObj.LineID},res=>{ if(res.data.resultCode == 1) { this.khmdList=res.data.data } },err=>{}) }, getDdztList(){ this.apipost('sellorder_post_GetSellOrderStatusEnumList',{},res=>{ if(res.data.resultCode == 1) { this.ddztList=res.data.data } },err=>{}) }, getDdlyList(){ this.addMsg.ClientSource='' this.apipost('sellorder_get_GetSellClientSourceEnumList',{typeId:this.addMsg.CustomerType},res=>{ if(res.data.resultCode == 1) { this.ddlyList=res.data.data } },err=>{}) }, getCtlxList(){ this.apipost('sellorder_get_GetOrderJoinEnumList',{},res=>{ if(res.data.resultCode == 1) { this.ctlxList=res.data.data } },err=>{}) }, getKhlxList(){ this.apipost('sellorder_get_GetSellClientTypeEnumList',{},res=>{ if(res.data.resultCode == 1) { this.khlxList=res.data.data } },err=>{}) }, getJourney(id, title) { var that = this; this.tripTitle = title; this.$nextTick(() => { that.$refs.comTeam.GetTrip(id); }); that.outerVisible = true; }, getList(ID) { this.loading = true this.apipost('TaskManagemnet_get_GetSellProductCenterForFinance',{TCIDList:ID}, res => { if(res.data.resultCode == 1) { this.loading = false; this.total = res.data.data.count; let data = res.data.data; data.forEach(x=>{ x.tableShowTeam = false; }) this.list = data } else { this.$message.error(res.data.message) } }, err => {}) }, getLineList() { this.apipost("line_post_GetAllList", {}, res => { if(res.data.resultCode == 1) { this.LineList = res.data.data; } }); }, getFlightDetails(id) { this.apipost('travel_get_GetTripForSell', { TCID: id }, res => { if(res.data.resultCode == 1) { this.tripDetails = res.data.data.FlightList } else { this.$message.error(res.data.message) } }, err => {}) }, //获取系列列表 getLineTeamList(lineId) { this.LineTeamList = [] this.apipost("team_post_GetList", { lineID: lineId, isTOOP: 1 }, res => { if(res.data.resultCode == 1) { this.msg.LineTeamId = '-1' this.LineTeamList = res.data.data; } }); }, getStartList() { this.apipost("sellorder_get_GetAllStartCity", {}, res => { if(res.data.resultCode == 1) { this.startCityList = res.data.data; } else { } }); }, getStartList1() { this.apipost("city_post_GetList", { isDefault: -1, priceType: -1 }, res => { if(res.data.resultCode == 1) { this.startCityList1 = res.data.data; } else { } }); }, getCompanyList() { let userInfo = this.getLocalStorage(); let RB_Group_id = userInfo.RB_Group_id; let msg = { Status: 0, is_show: 0, RB_Group_Id: RB_Group_id } this.apipost('admin_get_BranchGetList', msg, res => { if(res.data.resultCode == 1) { this.companyList = [{ Id: '-1', BName: '不限' }]; res.data.data.forEach(x => { var obj = { Id: '', BName: '' } obj.Id = x.Id.toString(); obj.BName = x.BName; this.companyList.push(obj); }) } }, err => {}) }, getAirlineList() { //获取航空公司* let msg = {}; this.apipost('airline_post_GetList', msg, res => { this.airlineList = res.data.data; }, err => {}) }, getSalePlace() { this.apipost('travel_get_GetTravelSelectEnum', {}, res => { if(res.data.resultCode == 1) { this.salePlace = res.data.data.SalePlat } }, err => {}) }, handleCurrentChange(val) { this.msg.pageIndex = val; this.getList() }, resetPageIndex() { this.msg.pageIndex = 1; this.currentPage = 1 }, getEmployee() { //员工 this.apipost('admin_get_EmployeeGetList', this.employeeMsg, res => { if(res.data.resultCode == 1) { this.employeeList = res.data.data; } else {} }, err => {}) }, }, mounted() { this.userId=this.getLocalStorage().EmployeeId this.msg.BranchId = this.getLocalStorage().RB_Branch_id.toString() // this.getEmployee() // this.getCompanyList() this.getList(this.ID) // this.getLineList() // this.getSalePlace() // this.getAirlineList() // this.getStartList() // this.getStartList1() // this.getKhlxList() // this.getCtlxList() // this.getDdlyList() // this.getDdztList() // this.getKhmdList() // this.getJyfs() // this.getFylx() } } </script>